繁体   English   中英

如何将子列表逐行写入文本文件?

[英]How to write sublists to a text file line by line?

def chunks(l, n):
    for i in range(0, len(l), n):
        yield l[i:i+n]
boleta.write(str(list(chunks(carrito, 3))))

我正在使用此代码创建每个包含3个元素的子列表,但我需要逐行编写子列表,而不是全部写在一行中。

我有的:

[[1, '001', 40], [1, '002', 20]]

我需要的:

[1, '001', 40]
[1, '002', 20]

你不应该将整个结果转换到一个列表,然后将其转换成一个字符串,你应该通过输出迭代 ,并且每个个体子表转换为字符串。 喜欢:

for sublist in chunks(carrito, 3):
    boleta.write(str(sublist))
    boleta.write('\n')

或者,您可以将'\\n'.join(..)输出放在一起,然后将结果字符串写入,例如:

boleta.write('\n'.join(str(subl) for subl in chunks(carrito, 3)))

在某些系统上, '\\n'不是行分隔符。 您可以使用os.linesep使程序更通用:

from os import linesep

boleta.write(linesep.join(str(subl) for subl in chunks(carrito, 3)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM