Python 运行os.path.realpath时与F5和F9的结果不同
我对os.path.realpath(os.path.dirname(sys.argv[0])感到非常困惑。 以下是我的困惑: (1) 如果我第一次在spyder中打开脚本(并运行下面的选定行(F9): 它返回:Python 运行os.path.realpath时与F5和F9的结果不同,python,directory,os.path,Python,Directory,Os.path,我对os.path.realpath(os.path.dirname(sys.argv[0])感到非常困惑。 以下是我的困惑: (1) 如果我第一次在spyder中打开脚本(并运行下面的选定行(F9): 它返回: dir_path = C:\Python27\lib\site-packages\spyderlib\widgets\externalshell 这不是我想要的结果 (2) 但是,如果我运行我的整个脚本(F5),我可以得到我期望的(,它是我脚本的当前目录)): (3) 此外,如果我:
dir_path = C:\Python27\lib\site-packages\spyderlib\widgets\externalshell
这不是我想要的结果
(2) 但是,如果我运行我的整个脚本(F5),我可以得到我期望的(,它是我脚本的当前目录)):
(3) 此外,如果我:
dir_path = C:\Users\abc\Desktop\py
dir_path = C:\Users\abc\Desktop\py
有人能解释一下吗?非常感谢。多谢各位 要获取当前完整路径名,可以使用
os.path.realpath(os.path.curdir)
至于混淆,请打印sys.argv
进行检查。它的内容可以包含不同的值,具体取决于脚本的调用方式。如果我刚刚进入python解释器,它将保存一个带有空字符串的列表,但是如果我调用python myscript.py
,它将保存脚本名,后跟任何参数
os.path.realpath(os.path.curdir)