繁体   English   中英

编写文本文件的特定行

[英]Writing specific lines of a text file

我写这段代码:

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行的文件。 我想从每一行开始写一些东西。 第一行的第三个单词不同,其他第二行的单词不同。您能帮我做错什么吗?

lines = [("LC" if i < 3 else "LB")+line for i,line in enumerate(lines)]

可能会解决问题

lines = ['LC '+line for line in lines]

您正在将LC写入每行而不仅仅是前3行。

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

现在您的行有了正确的前缀,您可以将所有这些都写到文件中

似乎您的第二个条件有些混乱。 如果您要在前三行写东西,然后在第四和第五行写东西,那么您的条件需要更改。

尝试将第二个elif更改为:

elif i <= 5 and i >=3:

另外,一个建议,您无需每次都打开文件进行写入。 您可以将第一行设置为:

f = open('example.txt','rw')

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM