1

そのような文字列を見つけてJob 'Initialize' completed successfully、Python からこのコマンドを実行する必要があります。

シェルgrep -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=True を subprocess.call に渡すことで、Python でそのまま実行できます。ドキュメントによると、「信頼されていない入力と組み合わせると、shell=True を使用してシステム シェルを呼び出すと、セキュリティ上の危険が生じる可能性があります」ということに注意してください。

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