退出IDLE后文件写入才完整(Python GUI)

0 投票
2 回答
856 浏览
提问于 2025-04-15 21:43

我想在一个文件里写点东西。比如说,

fo=open('C:\\Python\\readline_test.txt','a')
for i in range(3):
 st='abc'+'\n'
 fo.write(st)
fo.close

然后我在IDLE里打开这个Python文件,点击“运行模块”。没有错误信息,但我发现如果不退出IDLE,写入的内容是不完整的。我该怎么做才能在不退出IDLE的情况下完成文件写入呢?谢谢。

(我在Windows XP上使用Python 2.6.2。)

2 个回答

8

可能是个打字错误,但应该是:

fo.close()

这样就可以正常工作了。

另外,你可以使用 with 语句的写法 (更好的例子):

with open('C:\\Python\\readline_test.txt','a') as fo:
    for i in range(3):
        fo.write('abc'+'\n')

当你离开 with 这个代码块时,文件会自动关闭。

(与其写 'abc'+'\n',不如直接写 'abc\n')

0

你可以试试用

fo.flush()

也许在写入文件对象之后,使用

os.fsync()

来确保所有的文件操作都已经保存到磁盘上。

撰写回答