为什么在 Python 中无法将换行符写入文本文件?
Why is writing a newline to a text file not working in Python?
我正在尝试将列表保存到文本文件中,每个句子在一行中。但为什么这些代码对我不起作用?任何人?谢谢。
import codecs
text = ["good morning", "hello everybody"]
for texts in text:
file = codecs.open("newlinetest.txt", "w", "utf-8")
print texts
file.write(texts + "\n")
file.close()
您正在为 text
中的每个字符串打开文件而没有关闭它,这可能是导致错误的原因(您没有提到)。
使用 with
并且不要为关闭文件而烦恼(也不要将文件引用命名为 file
,因为它会隐藏 Python 的内置文件)。另请注意,您将需要使用 'a'
作为打开模式,以便始终附加到文件而不是截断它:
import codecs
text = ["good morning", "hello everybody"]
with codecs.open("newlinetest.txt", "a", "utf-8") as my_file: # better not shadow Python's built-in file
for texts in text:
print texts
my_file.write(texts + "\n")
# no need to call my_file.close() at all
你只需要在循环外打开文件一次,你可以使用 str.join 来写,w
覆盖所以你覆盖每次迭代,只用列表中的最后一个元素结束写的:
import codecs
text = ["good morning", "hello everybody"]
with codecs.open("newlinetest.txt", "w", "utf-8") as f:
f.write("\n".join(text))
由于您传递的是列表,因此 csv 模块非常适合您使用换行符作为分隔符来执行的操作:
text = ["good morning", "hello everybody"]
import csv
with codecs.open("newlinetest.txt", "w", "utf-8") as f:
wr = csv.writer(f,delimiter="\n")
wr.writerow(text)
还使用“\n\n”来引入换行间距,因为第一个“\n”参数不会执行任何操作,但会确保下一个输入集从下一行开始。
我正在尝试将列表保存到文本文件中,每个句子在一行中。但为什么这些代码对我不起作用?任何人?谢谢。
import codecs
text = ["good morning", "hello everybody"]
for texts in text:
file = codecs.open("newlinetest.txt", "w", "utf-8")
print texts
file.write(texts + "\n")
file.close()
您正在为 text
中的每个字符串打开文件而没有关闭它,这可能是导致错误的原因(您没有提到)。
使用 with
并且不要为关闭文件而烦恼(也不要将文件引用命名为 file
,因为它会隐藏 Python 的内置文件)。另请注意,您将需要使用 'a'
作为打开模式,以便始终附加到文件而不是截断它:
import codecs
text = ["good morning", "hello everybody"]
with codecs.open("newlinetest.txt", "a", "utf-8") as my_file: # better not shadow Python's built-in file
for texts in text:
print texts
my_file.write(texts + "\n")
# no need to call my_file.close() at all
你只需要在循环外打开文件一次,你可以使用 str.join 来写,w
覆盖所以你覆盖每次迭代,只用列表中的最后一个元素结束写的:
import codecs
text = ["good morning", "hello everybody"]
with codecs.open("newlinetest.txt", "w", "utf-8") as f:
f.write("\n".join(text))
由于您传递的是列表,因此 csv 模块非常适合您使用换行符作为分隔符来执行的操作:
text = ["good morning", "hello everybody"]
import csv
with codecs.open("newlinetest.txt", "w", "utf-8") as f:
wr = csv.writer(f,delimiter="\n")
wr.writerow(text)
还使用“\n\n”来引入换行间距,因为第一个“\n”参数不会执行任何操作,但会确保下一个输入集从下一行开始。