[英]Delete all lines in file until line with string
我正在编写一个用于编辑 file.txt 的脚本。 我有一个字符串名称:
str_name = 'abcd'
我的文件有很多行。 我删除了str_name
之前的所有行,并在文件行中留下了str_name
和下面的所有行。
file = open(local_filename, "r")
lines = file.readlines()
for line in lines:
if str_name in line:
print("Find")
start = lines.index(line)
lines = lines[start::1]
break
else:
print("Not found")
file.close()
file = open(local_filename, "wt")
for line in lines:
file.write(f"{line}")
file.close()
为避免将所有文件读入 memory,您可以这样做
with open(local_filename, "r") as f, open(local_filename + ".new", "w") as outf:
found = False
for line in f:
if str_name in line:
found = True
if found:
outf.write(line)
– 即跟踪您是否找到了所需的行,如果找到了,开始将它们写入另一个文件。
如果需要,您可以在最后执行os.rename()
以将新文件替换到位。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.