Python:带有存储在变量中的grep值的Shell总是附加一行

我忘了添加,我必须从 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"

我认为应该有更好的处理方式。


收到一只叮咚
浏览 35回答 1
1回答

MYYA

尝试打开文件并逐行或整体读取它:作为一个整体    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')。逐行检查也是一个更好更快的选择。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python