私は python の学習初心者であり、パイプなどのコマンドラインで作業しています。
os.system の代わりにサブプロセスが推奨されていることを読みました。シェルを呼び出すスクリプトを作成していますが、サブプロセスを使用して実行できませんでした。os.system を使用するのは簡単でした:
os.system("cut -f1-4 " + temp1.name + "| uniq --count | sort -rn > " + temp2.name)
私は他のコマンドで subprocess を使用して成功しましたが、複数のツールを "|" で組み合わせたものは使用しませんでした。サブプロセスの python ドキュメントを読むことは混乱を招き、私にとっては役に立ちませんでした。他の質問も検索してみましたが、私の問題に似たものを見つけることができませんでした。これは私が試した(そして失敗した)ものです:
subprocess.call = (["cut", "-f1-4", temp1.name, "|", "uniq", "--count", "|", "sort". "-rn"], stdout = open(temp2.name, 'w'))
また、sp.call を sp.Popen に置き換えようとしましたが、失敗しました。誰でも明確な例と説明を手伝ってもらえますか? ありがとう!