我使用此代码将非结构化文本文件拆分为其标记,并将每个标记输出到一行:
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()
但它不起作用。你能告诉我这有什么问题吗?
答案 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")
我怀疑你希望每个单词都在不同的行上,所以一定要写一个换行符。