使用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()

关于python - Python:更改与py2app捆绑在一起的脚本的CWD,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11642540/

10-16 06:09