如何不添加新行擦除它下面的行


f= open('elk.in','r')
lines = f.readlines()
for line in lines:
if line.startswith('vkloff'):
p=lines.index(line)+1
#print(lines[p])
break
lines[p] = f'{string}n'
string=''
with open('elk.in','w') as out:
out.writelines(lines)
out.close()

在第[p]行中,如果我删除它下面的行,它就会被删除。那么它是如何工作的呢?

猜测一下你的意图。你想打开一个文件,找到一个以给定前缀开头的行,用其他东西替换它,然后写回文件吗?如果是这样的话,这里有一些错误

  1. 您正试图打开已打开的文件。你应该先关闭它
  2. 假设这是完整的代码,则在使用string之前不会对其进行定义
  3. 当使用with打开文件时,您不需要在之后关闭它

考虑到这些,你想要像这样的东西

with open('elk.in','r') as f:
lines = f.readlines()
for idx, line in enumerate(lines):
if line.startswith('vkloff'):
p = idx
break
lines[p] = f'{string}n'
with open('elk.in','w') as out:
out.writelines(lines)

但真正需要更多的信息来了解你在这里想要实现的目标。

最新更新