Python スクリプトが次のように呼び出し可能であると仮定します。
python myscript.py ./mycommand > myoutput.txt
シェルが出力をファイルにパイプするのではなく、コマンドライン引数のリストに確実にmyscript.py
入るようにするにはどうすればよいですか?./mycommand > myoutput.txt
python myscript.py ./mycommand
編集
引用符を使用すると、追加の問題が発生します。検討:
import subprocess
import sys
argList = sys.argv[1].split()
subprocess.call(argList)
その後、次のように呼び出されます。
python myscript.py 'ls -l > ls.out'
結果は
ls: cannot access >: No such file or directory
ls: cannot access ls.out: No such file or directory
動機は、実行しようとしているコマンドからの出力のみをファイルに保存する必要があることです。myscript.py
からへのその他の出力はstdout
、ファイルに送信されません。stdout
にオプションを付けてパイプを設定する必要があるようsubprocess.call()
です。引数のリストを直接使用する方法はあります>
か?2>
2&>
<