Writelines写的行没有换行符,只填充文件

Writelines写的行没有换行符,只填充文件,第1张

Writelines写的行没有换行符,只填充文件

对于刚接触Python的新手来说,这实际上是一个非常普遍的问题-
尤其是因为在标准库和流行的第三方库中,一些阅读功能会删除换行符,但几乎没有书写功能(与-

log
有关的东西除外)会添加它们。

因此,有很多Python代码可以执行以下 *** 作:

fw.write('n'.join(line_list) + 'n')

要么

fw.write(line + 'n' for line in line_list)

哪一种是正确的,当然您甚至可以编写自己的writelinesWithnewlines函数来包装它……

但是,只有在无法避免的情况下,才应该这样做。

最好首先创建/保留换行符,如Greg Hewgill的建议:

line_list.append(new_line + "n")

如esuaro所建议的,例如,可以使用标准库中的csv模块,则可以比文本的原始行更高级地工作,甚至更好。

例如,在定义之后

fw
,您可以执行以下 *** 作:

cw = csv.writer(fw, delimiter='|')

然后,代替此:

new_line = d[looking_for]+'|'+'|'.join(columns[1:])line_list.append(new_line)

你来做这件事:

row_list.append(d[looking_for] + columns[1:])

最后,代替这个:

fw.writelines(line_list)

你来做这件事:

cw.writerows(row_list)

最后,您的设计是“打开文件,然后建立要添加到文件中的行列表,然后一次写入所有行”。如果要打开该文件,为什么不只一行一行地写呢?无论您使用的是简单写入还是

csv.writer
,它都将使您的生活更简单,并且代码也更易于阅读。(有时出于简单,效率或正确性的原因,一次全部写入一个文件,但是一旦您将
open
所有内容从移到程序的另一端
write
,您就几乎失去了所有好处。
-一次)。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5645294.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存