这两种写入文件的方法有什么区别

时间:2018-12-13 06:07:15

标签: python writefile

我使用以下两种方法来编写txt文件,但结果却有所不同。

第一种方法:

with open("raw_train.txt", "a") as f0:
    for sent in reader_train.sents():
        f0.write(' '.join(sent))
        f0.write('\n')

第二种方法:

f1 = open("raw_train.txt", "a")
for sent in reader_train.sents():
    f1.write(' '.join(sent))
    f1.write('\n')

reader_train.sents()是一个长度为39832的列表。Method1给了我正确的输出,但是method2的输出只有39812行,原始列表的最后20个条目已删除。我无法理解这两种方法之间的区别。

1 个答案:

答案 0 :(得分:-1)

在第二种方法中,一旦完成对文件的写入,也应将其关闭。这是为了确保将仍在缓冲区中的数据正确刷新到文件中。

f1 = open("raw_train.txt", "a")
for sent in reader_train.sents():
    f1.write(' '.join(sent))
    f1.write('\n')
f1.close()

“ with”语句负责在操作完成后自动关闭文件,因此您不必手动进行操作,这就是为什么它对于第一种方法可以正常工作的原因