我的脚本在使用 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()
