繁体   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