如何将输出保存到新的txt文件?

时间:2013-11-04 01:22:49

标签: python

我使用此代码将非结构化文本文件拆分为其标记,并将每个标记输出到一行:

with open("C:\\...\\...\\...\\record-13.txt") as f:
   lines = f.readlines()
   for line in lines:
       words = line.split()
       for word in words:
           print (word)

现在我想将输出保存到新文本文件而不是打印它,我将代码修改为:

with open("C:\\...\\...\\...\\record-13.txt") as f:
   lines = f.readlines()
   for line in lines:
       words = line.split()
       for word in words:
           file = open ("tokens.txt", "w")
           file.write (word)
           file.close()

但它不起作用。你能告诉我这有什么问题吗?

1 个答案:

答案 0 :(得分:3)

您正在为每个令牌打开文件,并且因为您以模式'w'打开,文件将被截断。您可以使用模式'a'打开以附加到文件,但这将是非常低效的。

更好的方法是在开始时打开输出文件,让上下文管理器为您关闭它。也没有必要在开始时将整个文件读入内存。

with open("in.txt") as in_file, open("tokens.txt", "w") as out_file:
   for line in in_file:
       words = line.split()
       for word in words:
           out_file.write(word)
           out_file.write("\n")

我怀疑你希望每个单词都在不同的行上,所以一定要写一个换行符。

相关问题