我使用以下两种方法来编写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个条目已删除。我无法理解这两种方法之间的区别。
答案 0 :(得分:-1)
在第二种方法中,一旦完成对文件的写入,也应将其关闭。这是为了确保将仍在缓冲区中的数据正确刷新到文件中。
f1 = open("raw_train.txt", "a")
for sent in reader_train.sents():
f1.write(' '.join(sent))
f1.write('\n')
f1.close()
“ with”语句负责在操作完成后自动关闭文件,因此您不必手动进行操作,这就是为什么它对于第一种方法可以正常工作的原因