栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
,您就几乎失去了所有好处。
-一次)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号