1

我需要找到这样的字符串Job 'Initialize' completed successfully并从 python 运行这个命令。

所以 shellgrep -c "Job 'Initialize' completed" 1.log 可以正常工作,但是这个命令在 python 中的外观如何?cmd = """grep -c "Job 'Initialize' completed" 1.log"""?

4

3 回答 3

3

使用子流程很容易做到这一点:

subprocess.call(['grep','-c',"Job 'Initialize' completed", '1.log'])
于 2012-10-11T14:55:05.003 回答
3

如果要使用 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)
于 2012-10-11T14:55:50.560 回答
0

shell 命令可以在 python 中使用三引号并将 shell=True 传递给 subprocess.call 来执行。请注意,根据文档“如果与不受信任的输入结合使用,使用 shell=True 调用系统 shell 可能会造成安全隐患”

 subprocess.call(''' grep -c "Job 'Initialize' completed" 1.log ''', shell=True)
于 2012-10-11T15:10:22.727 回答