python - 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"
我认为应该有更好的处理方式。
解决方案
尝试打开文件并逐行或整体读取它:
- 作为一个整体
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')。逐行检查也是一个更好更快的选择。
推荐阅读
- node.js - 通过Angular App和NodeJS向快递服务器发送GET / POST请求时如何修复404 Not Found
- python - 使用 mysql.connector.connect 的 Python 产生接口错误
- xml - Logstash XML 解析失败
- prolog - 如何迭代地使用 read_line_to_codes 和 atom_codes 来生成行数组作为我的 .txt 文件的字符串?
- php - Laravel 项目无法连接到 Wordpress 数据库
- javascript - 无法读取 null 的属性“错误”
- c++ - 使用模板和部分特化生成类型转换函数
- sql-server - 使用 TFS 命令行部署 SSIS 项目
- java - Java 8 intellij 和 gradle fat jar 找不到配置文件并启用自动配置
- php - 解析错误语法错误,意外?[php 7.1.3]