我对 os.path.realpath(os.path.dirname(sys.argv [0]))
感到非常困惑这是我的困惑:
(1)如果我在spyder中打开我的脚本( 第一次 )并运行下面的选定行(F9):
import os
import sys
dir_path = os.path.realpath(os.path.dirname(sys.argv[0]))
它返回:
dir_path = C:\Python27\lib\site-packages\spyderlib\widgets\externalshell
不 我想要的结果。
(2)但是,如果我运行整个脚本(F5),我可以得到我期望的结果( 这是我脚本的当前目录 ):< / p>
dir_path = C:\Users\abc\Desktop\py
(3)另外如果我:
我仍然可以 我的脚本的当前目录,只要我不退出spyder :
dir_path = C:\Users\abc\Desktop\py
古尔克,请有人解释一下这个问题吗?非常感谢。非常感谢你!
答案 0 :(得分:1)
要获取当前的完整路径名,您可以使用
os.path.realpath(os.path.curdir)
至于混淆,请打印sys.argv
进行检查。其内容可以包含不同的值,具体取决于脚本的调用方式。如果我只是进入python解释器,它会保存一个带有空字符串的列表,但如果我调用python myscript.py
,它将保存脚本名称,后跟任何参数。