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

标签 python python-3.x

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)))

关于python - 如何将子列表逐行写入文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45550755/

相关文章:

python - set_column 未将颜色格式应用于大型 Excel 文件的列

python - pandas 将字符串的类别转换为数字作为一个对象,但得到一组数字

python - 展开默认 (dita) 属性

python - 如何在没有音频库的情况下编辑原始 PCM 音频数据?

python - Pandas 数据帧替换速度慢

python-3.x - JCC无法链接python3.5进行pylucene安装

python - Pygame - 事件后 Sprite 的旋转不起作用

python - 错误 - pygame.error : Couldn't open backround. png。使固定?

python - 处理 "*.py"的 BufRead 自动命令时检测到错误

Python While 循环方 block