从列表写入文件时,最终输出会丢失lis的某些成员

2024-04-16 11:49:48 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个列表,其中每个成员是一个8位字符串

values = [ '12345678', '23848238', '23441236', ...

我想把所有这些都写在.txt上,如下所示:

123456782384823823441236...

我尝试使用以下代码执行此操作:

x = open('a.txt', 'w')
for l in range(len(values)):
    for m in range(0,7):
        current = values[l]
        x.write(current[m])
        x.seek((l*8)+(m))

结果是.txt丢失了第一个数字(在本例中为“1”),然后每8个数字一直丢失到最后。我试过搞乱我索引所有东西的方式(并且确实显示了第一个数字),但是它仍然丢失了每一个第八个数字


Tags: 字符串intxt列表forlenrange成员
2条回答

如果您只想将该列表中的所有字符串写入一个文件,则无需检查长度和查找等

with open('a.txt', 'w') as output:
    for item in values:
        output.write(item)

缺少第一个字符是因为seek位于循环的末尾-导致在第二次迭代中覆盖第一个字符

因为range(0,7)[0,1,2,3,4,5,6],所以每8个字符都会丢失一个

你真的应该停止像这样写数据,只需要按照@TigerhawkT3的建议一个一个地输出数据就行了-根本不需要寻找

相关问题 更多 >