我忘了添加,我必须从python调用shell,我有一个文件
cat file.txt
b
bb
bbb
如果只有“ bb”,则打印,否则失败,
str=subprocess.check_output('grep bb file.txt || echo 2',shell=True)
print 'str='+str # This always str=bb and an extra line
if (str == 'bb'): # Wish better way like str == '1'
print "Pass"
elif(str == '2') :
print "Fail"
我认为应该有更好的处理方法。
尝试打开文件并逐行或整体读取:
with open("file.txt", "r") as file:
data = file.read()
if "bbb" in data:
print("Pass")
else:
print("Fail")
with open("file.txt", "r") as file:
line = file.readline()
while line:
if "bbb" == line:
print("Pass")
break
print("Fail")
编辑:我看到您编辑了您的问题。 if语句可以更改,并且不会影响程序,因此您检查的内容(例如'bbb'或'11')无关紧要。逐行检查也是一个更好,更快的选择。