私はコマンドラインから呼び出すように書いたPythonスクリプトを持っています。私はGUIラッパーを書いていますが、主な機能を変更したくありません。 GUIコードでは、subprocess.run(['./executable.py', input])
を使用してスクリプトを呼び出していますが、入力はexecutable.py
のsys.argv
リストには表示されません。 sys.argv
に表示されるように入力をどのように渡しますか?ここで別のPythonスクリプトの `sys.argv`リストに入力を渡すにはどうしたらいいですか?
は、私は(chmod +x test.py
それが実行可能に)test.py
として保存したテストスクリプトである:ここで
#!/usr/bin/env python
# script to test using sys.argv with subprocess
import sys
print(sys.argv)
は、コマンドラインからこれを呼び出すときに、私が得るものです:
$> ./test.py input.txt
['./test.py', 'input.txt']
はこちら私がPythonシェルの中からこれを呼び出すときに得られるもの:
>>> import subprocess
>>> output = subprocess.run(['./test.py', 'input.txt'], shell=True, stdout=subprocess.PIPE)
>>> >>> print(output.stdout)
b"['./test.py']\n"
にinput.txt
を表示させるにはどうすればよいですか?
本当に必要なことが分かっていない限り、 'shell = True'を使用しないでください。 –