如何在最后一个元素后添加分隔符

问题描述 投票:0回答:2

我正在研究python代码,它读取然后更新文件中的行并在表格中显示它们(之前和之后)但是当它将数据写回文件时,分隔符“:”在最后一个元素之后添加并且崩溃表格形式,我怎么能避免这个

with open ('hotel.txt', 'w') as file:
    for i in list:
        for j in i:
            file.write(j+':')
        file.write('\n')

错误:异常:行的值数不正确,(实际)8!= 7(预期)

另外:由于作业的原因,我无法更改表格形式

python delimiter
2个回答
4
投票

在组合由分隔符分隔的字符串时,通常使用str.join

with open ('hotel.txt', 'w') as file:
    for i in list:
        file.write(":".join(i))
        file.write('\n')

0
投票

而不是在每个项目之后编写分隔符并尝试避免写入最后一个分隔符,而是在每个项目之前编写分隔符并避免编写第一个分隔符。

with open ('hotel.txt', 'w') as file:
    for i in list:
        delim = ""
        for j in i:
            file.write(delim + j)
            delim = ":"
        file.write('\n')

另一种方法是从循环中排除最后一项,并单独编写:

with open ('hotel.txt', 'w') as file:
    for i in list:
        for j in i[:-1]:
            file.write(j + ":")
        file.write(list[-1] + '\n')

但是这假设列表中至少有一个项目(空列表会在list[-1]上出错)。您可以使用if语句来避免这种情况,但是您仍在制作大部分列表的额外副本...您可以使用itertools.islice来避免这种情况,但随后您将拖入整个列表。无论如何,我认为第一种方式更简单。

© www.soinside.com 2019 - 2024. All rights reserved.