![](/img/trans.png)
[英]How to extract line after line till a specific keyword and then declare to a variable
[英]How to Delete Subsequent Line After A Line With Specific Keyword in Python
找到帶有關鍵字“ banana”的特定行后,我想刪除下一行,在這種情況下為“ berry”。
Sample.txt
orange
apple
banana
berry
melon
但是,我的腳本刪除了“香蕉”而不是“漿果”。...為什么?
import fileinput
filename = r"C:\sample.txt"
for linenum,line in enumerate(fileinput.FileInput(filename, inplace=1)):
if "banana" in line:
counter = linenum + 1
if linenum == counter:
line.strip()
else:
print line,
像這樣做:
import fileinput
fin = fileinput.input('/home/jon/text.txt', inplace=1)
for line in fin:
print line,
if line.strip() == 'banana':
next(fin, None) # as suggested by @thg435 doesn't hurt to use default to avoid StopIteration (as next iteration will just be a no-op anyway)
這利用了fin
對象的迭代,因此它不會看到下一行-這意味着您不必擔心設置/取消設置標志...(這可能會導致錯誤)
像這樣:
flag = False
with open("C:\sample.txt") as in_f:
for line in in_f:
if flag: # previous line have "banana", so skip this line
flag = False
continue
if "banana" in line: # set flag to skip line
flag = True
print line
請嘗試這個
filename = r"sample.txt"
counter = -1
for linenum,line in enumerate(fileinput.FileInput(filename, inplace=1)):
if "banana" in line:
counter = linenum + 1
if linenum == counter:
line.strip()
else:
print line,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.