6 つの入力を受け取る .py で記述されたファイルがあります。
これに似たワンライナーがあるかどうかを確認しています。
python myprog.py(1,2,1,1,2,4)
どうもありがとう。
リストを介して Python プログラムに引数を渡すことができますsys.argv
。C
のargc,argv
規則と同様に、文字列として渡されます。
シェル:
$ python myprog.py 1 2 1 1 2 4
myprog.py:
import sys
print [int(x) for x in sys.argv[1:]]
ご覧のとおり、最初のメンバーをsys.argv
除くすべてのメンバーを使用しています。argv[0]
のように、最初のメンバーC
はプログラム名です。
Python プログラムで関数が既に定義されている場合は、これをファイルの末尾に追加できます。
if __name__ == '__main__':
MyFunction([int(x) for x in sys.argv[1:]])
別の方法として、Python プログラムを変更したくない場合で、既に標準入力ストリームから入力を読み取っている場合は、シェル プログラミングを使用できます。
echo 1 2 1 1 2 4 | python myprog.py
または、プログラムが入力を読み取る方法に応じて、次のようになります。
$ python myprog.py << woof
> 1
> 2
> 1
> 1
> 2
> 4
> woof
myprog.py に、次のコードを追加します。
import sys
myparams = [int(i) for i in sys.argv[1:]]
myFunc(*myparams)
これで、コマンド ラインからこれを実行できるはずです。
python myprog.py 1 2 1 1 2 4