python - 我已将我的应用程序捆绑在 .exe 中,但它无法找到其他工作文件
问题描述
所以我创建了这个小脚本,它可以抓取旁边的文件并对其进行处理。到目前为止,一切都很好。我的脚本有以下内容:
cwd = os.path.dirname(os.path.realpath(__file__))
with open(cwd + '/myfile.csv', newline='') as csv_file:
readCSV = csv.reader(csv_file)
# rest of the code
当作为 .py 文件执行时,它可以完美运行,并且可以完成它必须做的事情。
当我试图将这个单个文件编译成可执行文件(适用于 mac 或 windows)时,问题就出现了,它只是没有找到文件'myfile.csv' 就在它旁边。
我尝试将文件与 command 捆绑在一起pyinstaller --add-data '/path/to/myfile.csv:.' /path/to/myscript.py
,是的,它在 .spec 文档中包含 csv 并将其与其他文件夹捆绑在一起。但是,当我执行该程序时,它一直说它找不到 myfile.csv,而它正试图到达我计算机中的根文件夹(?)
我可能在这里遗漏了一些东西,到目前为止,我的所有脚本都使用上面的代码完美地工作,以确保脚本适用于当前工作目录中的文件,但是当它编译成 .exe 时这似乎不起作用。
我的原始代码有什么我应该改变的吗?我在这里不知所措...
解决方案
谢谢,它似乎工作。
此外,我找到了另一个有效的解决方案,而不是:
cwd = os.path.dirname(os.path.realpath(__file__))
它可以更改为:
cwd = os.path.dirname(sys.argv[0])
但我看不出它的逻辑。无论如何,非常感谢!
推荐阅读
- javascript - 地理位置真的很慢我做错了什么?
- c# - 如何将特定行放在 datagridview 中?
- python-3.x - 将指定的行拆分为多个文件
- python - 将浮点日期转换为 YYYY-MM-DD 格式
- python - 如何在后台运行无限循环?
- pandas - 为什么dataframe.drop_duplicates('name') 正确,dataframe.drop_duplicates('age') 不行?
- django - 在特定参数下创建新对象
- android - 修改使用热敏打印机打印的阿拉伯字母
- json - 如何迭代 Jason 结构?
- javascript - 以下代码有什么问题?为什么图表不显示