为什么在Python中向文本文件写入换行符不起作用?

2024-06-26 01:36:30 发布

您现在位置: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()  

Tags: textinimport密码hello列表for句子
3条回答

您正在为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

也可以使用'\n\n'来归纳换行间距,因为第一个'\n'参数不会执行任何操作,但要确保下一个输入集从下一行开始。在

你只需要在外面打开文件就可以了结构连接要写入,w将重写,因此您将重写每次迭代,最后只写入列表中的最后一个元素:

import codecs

text = ["good morning", "hello everybody"]
with codecs.open("newlinetest.txt", "w", "utf-8") as f:
    f.write("\n".join(text))

由于您传递的是一个列表,因此csv模块将非常适合使用换行符作为分隔符:

^{pr2}$

相关问题 更多 >