2011-03-07 5 views
4

docs.python.orgから引用:。のpython:sys.argvの[0]の意味公式ドキュメント

sys.argv Pythonスクリプトに渡されたコマンドライン引数のリストargv[0]は(それがこのかどうかに依存するシステムを操作しているスクリプトの名前です。コマンドが実行された場合、argv[0]の文字列は'-c'に設定されています。スクリプト名がPythonインタプリタに渡されていない場合、argv[0]は空の文字列です。

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

私はPython 3.2でGNU/Linuxでテストしています。あなたは、コマンドラインからコマンドを実行するために-cでのPythonを起動した場合

+1

Eheh私は、 'python'の本当のオプションの代わりに' -c'を単なる例のオプションとして誤って解釈しました... – kynikos

答えて

10

いいえ、あなたsys.argv[0]-c次のようになります。

C:\Python27>python.exe -c "import sys; print sys.argv[0]" 
-c 
0

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

あなたは-cフラグでスクリプトを実行する場合は、[はい、sys.argv[1]"-c"に設定され、sys.argv[0]は、スクリプトの名前に設定されます。

+0

'-c'を' script -c '、本当のpythonのオプションとは思わなかった... ^^ ' – kynikos

4

python script.pyのように呼び出された場合、sys.argv[0] == 'script.py'と表示されます。 python -c 'import sys; print sys.argv'を呼び出すと、スクリプト本体がコマンド行で文字列として渡されたことを示すsys.argv[0] == '-c'が表示されます。

関連する問題