2016-06-15 1 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' 

Настоящее имя файла является «Ра х 13 arima.py» и его расположенные в «C: \ Users \ infantjo \ Документы \ Python Scripts \ Projects \ Работа в

текущего каталога Прогресс является:

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

Что я делаю неправильно?

(Я использую Python 2.7.11 в Spyder 2.3.8, установленный с Anaconda 2.3.0, 64 бит).

+0

Что вы подразумеваете под * 'working on' *? Вы имеете в виду бег? 'sys.argv [0]' дает имя скрипта, который был запущен как точка входа в текущий процесс. См. [Docs] (https://docs.python.org/2/library/sys.html#sys.argv) –

+0

извините, да, я имею в виду код, который я запускаю. – Gabriel

+0

'getcwd()' является рабочим каталогом. Это совсем другая вещь из каталога, в котором находится ваш код. Почему вы ожидаете, что они будут одинаковыми? –

ответ

2

argv содержит список аргументов командной строки, переданных скрипту python. argv[0] - это имя сценария. doc

IDE как Spyder/PyCharm не запускает скрипт напрямую. Запустите оболочку, запускающую ваш скрипт.

В этом случае Spyder запускает сценарий start_ipython_kernel.py, который получает имя вашего скрипта в качестве параметра и запускает его.

Если вам нужно имя сценария, используйте __file__ var.

Смежные вопросы