【发布时间】:2016-06-16 04:54:21
【问题描述】:
如果我理解正确,当键入 sys.argv[0] 时,它会显示正在处理的 .py 文件的名称。但是当我这样做时,它会显示一个不同的名称:
sys.argv[0]
'C:\\Anaconda\\lib\\site-packages\\spyderlib\\widgets\\externalshell\\start_ipython_kernel.py'
文件的真实名称是'Ra x 13 arima.py',它位于'C:\Users\infantjo\Documents\Python Scripts\Projects\Work in Progress '
当前目录是:
os.getcwd()
'C:\\Users\\infantjo\\Documents\\Python Scripts\\Projects'
我做错了什么?
(我在 Spyder 2.3.8 中使用 Python 2.7.11,安装了 Anaconda 2.3.0,64 位)。
【问题讨论】:
-
你说的'工作'是什么意思?你是说跑步吗?
sys.argv[0]给出了作为运行进程入口点运行的脚本的名称。见the docs -
抱歉,我的意思是我正在运行的代码。
-
getcwd()是工作目录。这与您的代码所在的目录完全不同。为什么您希望它们相同? -
看起来
ipython/spyder正在包装您的脚本。您可以退回到__file__,但它会为您提供当前模块的文件名。每个 py 文件都会给你它的名字,所以你只需要引用你的主模块的__file__。