if-else里面的for循环不能在python中工作

use*_*960 3 python for-loop if-statement file

我正在if-else通过从文本文件中逐行读取输入来编写一个简单的Python脚本,其中包含for循环中的条件.下面是我的脚本.我应该得到预期的输出.请帮忙!我的env.txt包含:

DEV01
DEV02
UAT01
UAT02
Run Code Online (Sandbox Code Playgroud)

这是代码:

with open("env.txt") as envnames:
    for eachenv in envnames:
        if eachenv=="DEV01" or "DEV02":
            eachenv="dev"
            print (eachenv)
        elif eachenv=="UAT01" or "UAT02":
            eachenv="uat"
            print(eachenv)
        else :
            print('')
Run Code Online (Sandbox Code Playgroud)

预期:

dev
dev
uat
uat
Run Code Online (Sandbox Code Playgroud)

实际:

dev
dev
dev
dev
Run Code Online (Sandbox Code Playgroud)

Meh*_*far 6

问题是if eachenv=="DEV01" or "DEV02".

你不能这样检查.结果将是True,eachenv=="DEV01"否则rusult将"DEV02",而不是False.你应该这样:

if eachenv in ["DEV01", "DEV02"]:
Run Code Online (Sandbox Code Playgroud)

for eachenv in envnames:改为:

for eachenv in envnames.readlines():
Run Code Online (Sandbox Code Playgroud)