对于刚接触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,您就几乎失去了所有好处。
-一次)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)