我写这段代码:
f = open('example.txt','r')
lines = f.readlines()
for i, line in enumerate(f):
if i < 3:
lines = ['LC '+line for line in lines]
with open('./example.txt', 'w') as f:
f.writelines(lines)
f.close()
elif i < 5:
lines = ['LB '+line for line in lines]
with open('./example.txt', 'w') as f:
f.writelines(lines)
f.close()
elif i > 6:
break
f.close()
我有一个包含11行的文件。我想从每一行开始写一些东西。 3个第一行的单词不同,其他2的单词不同。你能帮我解决我做错的事吗?
答案 0 :(得分:2)
lines = [("LC" if i < 3 else "LB")+line for i,line in enumerate(lines)]
可能会做到这一点
答案 1 :(得分:1)
代表lines = ['LC '+line for line in lines]
您正在为每一行写LC
而不仅仅是前三行。
lines = ['LB '+line for line in lines]
同样在这里
首先,您可以为线条添加正确的前缀,然后您可以实际写入线条。 有点像:
for i, line in enumerate(lines):
if i < 3:
# add prefix to line
if 3 < i < 5:
# add correct prefix
现在您的行具有正确的前缀,您可以将它们全部写入文件
答案 2 :(得分:1)
看起来你的第二个条件有点搞砸了。如果你在前三行写东西,然后是第四和第五行,那么你的条件需要改变。
尝试将第二个elif更改为:
elif i <= 5 and i >=3:
另外,建议的一句话,你不需要每次都打开文件进行写作。您可以将第一行设置为:
f = open('example.txt','rw')
这将打开文件,为您提供一个句柄,并允许您对其进行读写。