簡體   English   中英

使用 readlines 時如何在 python 中的 if 語句中增加值

[英]How to increment value in if statement in python when using readlines

我是 python 的初學者,並試圖制作一個在 if 語句中存儲值的腳本。 我在這里瀏覽了很多問題,但遺憾的是,這些問題都沒有明確解決我的問題。

我想要做的是在僅包含“橙色”一詞的行下方標記數字。

這是我迄今為止嘗試過的簡單代碼:

with open("input.txt", "r") as inp:
    with open("output.txt", "w") as oup:
        for line in inp.readlines():
#            while True:
            number = 0 
            if "orange" in line:
                number+=1
                print(number)
            oup.write(line)

也就是說,我想將 input.txt 變成所需的 output.txt 如下:

輸入.txt

    ...
    some random texts
    ...
    
    grape sldkfjasldkalg
    lsadkgjag orange
    apple
    alsdfkjalkdfjalfkdlsf orange
    banana
    orange sldsjkd
    orange asskdjhgskg
    cucumber
    
    ...
    some random texts
    ...

output.txt

...
some random texts
...

grape sldkfjasldkalg
lsadkgjag orange
0
apple
alsdfkjalkdfjalfkdlsf orange
1
banana
orange sldsjkd
2
orange asskdjhgskg
3
cucumber

...
some random texts
...

但是,當我運行該代碼時,數字停止在“1”並且根本不增加。

這就是為什么我想知道在 if 語句中存儲值和遞增它的方法。 我想通過修改使用 readlines() 的原始代碼來解決它

誰能給我任何指導來解決這個問題? 謝謝。

每次執行 for 循環時,都會設置值number = 0這就是增量不起作用的原因。

您應該在 for 語句之前啟動數字:

with open("input.txt", "r") as inp:
with open("output.txt", "w") as oup:
    number = 0 
    for line in inp.readlines():
        if "orange" in line:
            number+=1
            print(number)
        oup.write(line)

變量number=0必須在循環之前初始化。 您還必須將數字寫入文件。 您的代碼中缺少它。 對於寫入文本文件,使用print function 並指定參數file更簡單。

number = 0
with open("input.txt", "r") as inp:
    with open("output.txt", "w") as oup:
        for line in inp:
            print(line, file=oup)
            oup.write(line)
            if "orange" in line:
                number+=1
                print(number, file=oup)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM