我需要找到这样的字符串Job 'Initialize' completed successfully
并从 python 运行这个命令。
所以 shellgrep -c "Job 'Initialize' completed" 1.log
可以正常工作,但是这个命令在 python 中的外观如何?cmd = """grep -c "Job 'Initialize' completed" 1.log"""
?
使用子流程很容易做到这一点:
subprocess.call(['grep','-c',"Job 'Initialize' completed", '1.log'])
如果要使用 Python,请使用 Python:
with open('1.log') as f:
count = 0
for line in f:
if "Job 'Initialize' completed" in line:
count += 1
print "Count: {}".format(count)
或者
with open('1.log') as f:
count = sum(1 for line in f if "Job 'Initialize' completed" in line)
print "Count: {}".format(count)
shell 命令可以在 python 中使用三引号并将 shell=True 传递给 subprocess.call 来执行。请注意,根据文档“如果与不受信任的输入结合使用,使用 shell=True 调用系统 shell 可能会造成安全隐患”
subprocess.call(''' grep -c "Job 'Initialize' completed" 1.log ''', shell=True)