我忘了添加,我必须从 python 调用 shell,我有一个文件cat file.txtbbbbbb如果只有“bb”存在则打印,否则失败,str=subprocess.check_output('grep bb file.txt || echo 2',shell=True)print 'str='+str # This always str=bb and an extra lineif (str == 'bb'): # Wish better way like str == '1' print "Pass"elif(str == '2') : print "Fail"我认为应该有更好的处理方式。
1 回答
![?](http://img1.sycdn.imooc.com/54584dc4000118d302200220-100-100.jpg)
MYYA
TA贡献1868条经验 获得超4个赞
尝试打开文件并逐行或整体读取它:
作为一个整体
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
line = file.readline()
print("Fail")
编辑:我看到你编辑了你的问题。if 语句可以更改并且不会影响程序,因此您检查的内容无关紧要(例如'bbb' 或'11')。逐行检查也是一个更好更快的选择。
添加回答
举报
0/150
提交
取消