6

docs.python.orgからの引用:

" sys.argvPython スクリプトに渡されるコマンド ライン引数のリスト。argv[0]はスクリプト名です (これがフル パス名であるかどうかは、オペレーティング システムによって異なります)。コマンドが-cコマンド ライン オプションを使用してインタープリターに実行された場合、argv[0]は に設定されます。文字列'-c'。スクリプト名が Python インタープリターに渡されなかった場合、argv[0]は空の文字列です。"

何か不足していますか、またはsys.argv[0]常にスクリプト名を返しますか?取得する'-c'には、使用する必要がありますsys.argv[1]か?

GNU/Linux で Python 3.2 をテストしています。

4

3 に答える 3

11

いいえ、Pythonを呼び出し-cてコマンドラインからコマンドを実行すると、次のsys.argv[0]ようになります-c

C:\Python27>python.exe -c "import sys; print sys.argv[0]"
-c
于 2011-03-07T16:47:13.270 に答える
7

Pythonがpython script.pythenとして呼び出されたときsys.argv[0] == 'script.py'。を呼び出すと、スクリプト本体がコマンドラインで文字列として渡されたことpython -c 'import sys; print sys.argv'を示します。sys.argv[0] == '-c'

于 2011-03-07T16:49:44.130 に答える
0

python -cファイルからのスクリプトではなく、コマンドラインで渡されたコマンドを実行します。 sys.argv[0]に設定され"-c"ます。

フラグを付けてスクリプトを実行すると、yesはスクリプトの名前に設定され、に設定されます。-csys.argv[1]"-c"sys.argv[0]

于 2011-03-07T16:48:02.577 に答える