你可以試試這個:
file = open("filename.txt", "r") # This opens the original file
output = open("result.txt", "w") # This opens a new file to write to
seenSpecialStuff = 0 # This will keep track of whether or not the 'SpecialStuff' line has been seen.
for line in file:
if ";" in line:
seenSpecialStuff = 0 # Set tracker to 0 if it sees a semicolon.
if seenSpecialStuff == 1:
output.write(line) # Print if tracker is active
if "SpecialStuff" in line:
seenSpecialStuff = 1 # Set tracker to 1 when SpecialStuff is seen
這將返回一個名爲的Result.txt文件,其中包含:
select
numbers
,othernumbers
words
這個代碼可以改善!由於這可能是一項家庭作業,您可能需要進一步研究如何使其更高效。希望它能成爲你的有用起跑點!
乾杯!
編輯
如果你想要的代碼來具體看行「SpecialStuff」(而不是包含「SpecialStuff」行的),你可以很容易地改變了「if」語句,以使其更具針對性:
file = open("my.txt", "r")
output = open("result.txt", "w")
seenSpecialStuff = 0
for line in file:
if line.replace("\n", "") == ";":
seenSpecialStuff = 0
if seenSpecialStuff == 1:
output.write(line)
if line.replace("\n", "") == "SpecialStuff":
seenSpecialStuff = 1
謝謝,這真的很接近我正在尋找的東西。唯一的問題是代碼中有些部分的字符串像「abcSpecialStuffpdq」,所以它抓住了後面的所有內容。我怎樣才能更改代碼,使其只抓取字符串「SpecialStuff」後面的內容? – user3476463
你可以嘗試使if語句的內容像'if line.replace(「\ n」,「」)==「SpecialStuff」:',這樣就可以使得只有其中包含SpecialStuff的行會觸發器使跟蹤器「1」!如果你只想找到特定的事件,也可以爲其他行完成。 – cosinepenguin
我編輯了答案來反映這一點!如果您以後還需要獲取「abcSpecialStuffpdq」中包含的信息,則必須添加單獨的「if」語句,以便代碼能夠識別它。 – cosinepenguin