为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

收到一只叮咚 2022-07-26 09:39:29
我忘了添加,我必须从 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 回答

?
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')。逐行检查也是一个更好更快的选择。


查看完整回答
反对 回复 2022-07-26
  • 1 回答
  • 0 关注
  • 34 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信