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

2024-10-06 06:57:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 文件csv脚本文件夹appcontentsresourcessan
1条回答
网友
1楼 · 发布于 2024-10-06 06:57:29

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

import sys
import os.path

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

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

相关问题 更多 >