.write 在 Python 中不起作用



我对Python相当陌生,所以希望我只是在这里错过了一些明显的东西,但它让我难倒了。 我的程序片段如下:

outFile = open('P4Output.txt', 'w')
outFile.write(output)
print output
print "Output saved to "P4Output.txt"n"

输出可以正确打印到控制台,但是如果我打开文件,它是空白的。 如果我删除该文件并再次执行我的程序,该文件已创建,但仍为空。 我之前在我的另一个程序中使用了完全相同的代码块,它有效,并且仍然有效。 但是,如果我打开 Python 并尝试一些简单的事情,例如:

f = open('test.txt', 'w')
f.write("test")

同样,创建了 test.txt,但留空。 什么给?

你记得在节目结束时f.close()吗?

由于缓冲,字符串可能不会实际显示在文件中,直到您调用 flush()close() 。所以试着在f.write()后打电话给f.close().还建议对文件对象使用 with,即使您由于异常或return语句而提前突破with块,它也会自动为您关闭文件。

with open('P4Output.txt', 'w') as f:
    f.write(output)

你需要做一个

outFile.flush()

如果要将缓冲的内容写入磁盘。如果已完成对文件的写入,则file.close调用将在关闭文件之前隐式刷新缓冲的数据。

尝试将您的语句包含在 try/except 块中,以了解在打开或写入文件期间是否发生了什么:

try:
    outFile = open('P4Output.txt', 'w')
    outFile.write(output)
    outFile.close()
except IOError as (errno, strerror):
    print "I/O error({0}): {1}".format(errno, strerror)

并始终关闭文件,以便系统可以在关闭文件之前将数据刷新到文件中。

也许你应该使用绝对路径而不是相对路径。

相关内容

  • 没有找到相关文章

最新更新