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

时间:2012-07-25 04:05:01

标签: python py2app

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

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

Hacky fix

这是一个有效的黑客:

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"))

1 个答案:

答案 0 :(得分:0)

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

import sys
import os.path

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

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