2016-06-15 5 views
3

正しく理解したら、sys.argv [0]と入力すると、作業中の.pyファイルの名前が表示されます。しかし、私はこれを行うとき、それは私に別の名前を示していますsys.argv [0]はPythonでファイルの名前を表示していません

sys.argv[0] 
'C:\\Anaconda\\lib\\site-packages\\spyderlib\\widgets\\externalshell\\start_ipython_kernel.py' 

ファイルの本当の名前はとその「Cにある 'Raは13 arima.py X' である:\ Users \ユーザーinfantjoを\プロジェクト\ドキュメント\ Pythonスクリプト\進捗状況

現在のディレクトリ内の作業は次のとおりです。私は間違って何をやっている

os.getcwd() 
'C:\\Users\\infantjo\\Documents\\Python Scripts\\Projects' 

(Spacer 2.3.8のPython 2.7.11をAnaconda 2.3.0、64bitと一緒にインストールして使用しています)

+0

* 'working on' *とは何を意味していますか?あなたは走っているのですか? 'sys.argv [0]'は、実行中のプロセスのエントリポイントとして実行されたスクリプトの名前を返します。 [the docs](https://docs.python.org/2/library/sys.html#sys.argv)を参照してください –

+0

申し訳ありません、はい、私は実行しているコードを意味します。 – Gabriel

+0

'getcwd()'は作業ディレクトリです。それはあなたのコードが入っているディレクトリとはまったく異なるものです。どうしてそれらが同じであると思いますか? –

答えて

2

argvには、pythonスクリプトに渡されるコマンドライン引数のリストが含まれています。 はスクリプト名です。 doc

Spyder/PyCharmのようなIDEではスクリプトを直接実行しません。それはあなたのスクリプトを実行するラッパーを実行しています。

この場合、Spyderはstart_ipython_kernel.pyスクリプトを実行し、Yourスクリプト名をパラメータとして取得して実行します。

スクリプト名が必要な場合は、__file__ varを使用します。

関連する問題