我有一个python代码,可以将一些输出以文本形式写入已定义的输出文件。在PyCharm中,我的脚本可以正常运行,但是当我使用pyinstaller将xx.py转换为.exe文件时,exe文件无法写入已经位于同一路径的输出文件。
要编写输出,我使用以下代码:
fg = open('input.src')
output_file = open("output.obj", "w")
for line in fg:
**do something**
output_file = open("output.obj", "a")
output_file.write("[" + str(hex(memory_location)) + "]" + " " + output + "\n")
我还尝试了不带PyCharm的xx.py,带有控制台,脚本运行良好。
答案 0 :(得分:0)
当我将其转换为.exe文件时...
不清楚您指的是什么转换过程。
肯定PyCharm正在将标准python解释器作为子进程运行。 听起来您在遇到问题时可能正在运行cython或其他异常语言环境。
您写道:
output_file = open("output.obj", "w")
...
output_file = open("output.obj", "a")
您选择不使用with
习惯用法。
更重要的是,您选择不重新打开之前output_file.close()
。
您的语言解释器+文件系统的组合可能需要先关闭再进行后续打开。
答案 1 :(得分:0)
由于@mypetlion,此问题是由输入文件的ANSI编码引起的。它需要更改为UTF-8。