我正在研究python代码,它读取然后更新文件中的行并在表格中显示它们(之前和之后)但是当它将数据写回文件时,分隔符“:”在最后一个元素之后添加并且崩溃表格形式,我怎么能避免这个
with open ('hotel.txt', 'w') as file:
for i in list:
for j in i:
file.write(j+':')
file.write('\n')
错误:异常:行的值数不正确,(实际)8!= 7(预期)
另外:由于作业的原因,我无法更改表格形式
在组合由分隔符分隔的字符串时,通常使用str.join
:
with open ('hotel.txt', 'w') as file:
for i in list:
file.write(":".join(i))
file.write('\n')
而不是在每个项目之后编写分隔符并尝试避免写入最后一个分隔符,而是在每个项目之前编写分隔符并避免编写第一个分隔符。
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
来避免这种情况,但随后您将拖入整个列表。无论如何,我认为第一种方式更简单。