编写文本文件的特定行

时间:2012-10-10 14:04:25

标签: python

我写这段代码:

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的单词不同。你能帮我解决我做错的事吗?

3 个答案:

答案 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')

这将打开文件,为您提供一个句柄,并允许您对其进行读写。