私はたくさんの異なるテキストファイルを持っていて、テキストを1つのファイルに分類しようとしています。私はpythonのサブプロセスを使っています、そして私は次のコードを書きました
command_line = "sort -m 1.txt 2.txt > a.txt"
args = shlex.split(command_line)
subprocess.call(args)
その結果、subprocess.call(args)は2を返し、a.txtには何も書き込まれませんでした。私のコードに何か問題がありますか?
回答:
回答№1は0シェルリダイレクト演算子を使いたい場合 >
あなたのコマンドラインでは、渡す必要があります shell=True
に subprocess.call
。そうでなければ、 ">"と "a.txt"がコマンドライン引数として渡されます。 sort
。と shell=True
コマンドラインは実際のシェルに渡されて解釈されるので、そうしないでください。 shlex.split
それ。使いやすいかもしれません os.system
の代わりに subprocess.call
これはデフォルトでシェルを使用します。