[英]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.