Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:更改与py2app捆绑的脚本的CWD_Python_Py2app - Fatal编程技术网

Python:更改与py2app捆绑的脚本的CWD

Python:更改与py2app捆绑的脚本的CWD,python,py2app,Python,Py2app,我的脚本在使用python运行时运行良好,但在使用py2app构建脚本后,文件和文件夹将在.app/Contents/Resources中创建。我使用os.getcwd()查找脚本的位置 如何修复此问题并确保在包含目录的应用程序中创建我的文件 黑客补丁 下面是一个有效的黑客: if re.search('([^/]+$)', cwd).group(0) == "Resources": mkFldr(cwd[0:-27] + fldr) #this is a try exc

我的脚本在使用
python
运行时运行良好,但在使用
py2app
构建脚本后,文件和文件夹将在
.app/Contents/Resources
中创建。我使用
os.getcwd()
查找脚本的位置

如何修复此问题并确保在包含目录的应用程序中创建我的文件

黑客补丁

下面是一个有效的黑客:

if re.search('([^/]+$)', cwd).group(0) == "Resources":
    mkFldr(cwd[0:-27] + fldr)         #this is a try except function
    sanExt(extPath, str(cwd[0:-27] + fldr + "/" + extName + "_san.csv"))
else:
    mkfldr(fldr)
    sanExt(extPath, str(cwd + "/" + fldr + "/" + extName + "_san.csv"))

如果我正确理解你的要求,我会使用类似于以下的方法来处理这个问题。“冻结”部分会根据您运行的是脚本还是py2exe/py2app可执行文件来更改行为

import sys
import os.path

frozen = getattr(sys, 'frozen', '')

if frozen:
    MyFolder = os.path.dirname(sys.executable)
else:
    Myfolder = os.getcwd()

如果我正确理解你的要求,我会使用类似于以下的方法来处理这个问题。“冻结”部分会根据您运行的是脚本还是py2exe/py2app可执行文件来更改行为

import sys
import os.path

frozen = getattr(sys, 'frozen', '')

if frozen:
    MyFolder = os.path.dirname(sys.executable)
else:
    Myfolder = os.getcwd()