运行 os.path.realpath 时 F5 和 F9 的不同结果
different result from F5 and F9 when running the os.path.realpath
我对os.path.realpath(os.path.dirname(sys.argv[0]))[=49感到很困惑=]
这是我的困惑:
(1) 如果我在 spyder 中打开我的脚本(第一次)和运行下面选定的行(F9):
import os
import sys
dir_path = os.path.realpath(os.path.dirname(sys.argv[0]))
它returns:
dir_path = C:\Python27\lib\site-packages\spyderlib\widgets\externalshell
不是我想要的结果。
(2) 但是,如果我 运行 我的整个脚本 (F5),我可以获得我期望的结果(这是我脚本的当前目录):
dir_path = C:\Users\abc\Desktop\py
(3) 另外如果我:
- 运行整个脚本,
- %重置变量,
- 运行 与之前相同的选择行,
只要我不退出spyder:[=16=,我仍然可以获得我脚本的当前目录]
dir_path = C:\Users\abc\Desktop\py
有人可以解释一下吗?我们将不胜感激。非常感谢!
要获取您当前的完整路径名,您可以使用
os.path.realpath(os.path.curdir)
至于混淆,打印sys.argv
检查一下。它的内容可以包含不同的值,具体取决于您的脚本的调用方式。如果我只是进入 python 解释器,它包含一个包含空字符串的列表,但如果我调用 python myscript.py
,它将包含脚本名称,后跟任何参数。
我对os.path.realpath(os.path.dirname(sys.argv[0]))[=49感到很困惑=]
这是我的困惑:
(1) 如果我在 spyder 中打开我的脚本(第一次)和运行下面选定的行(F9):
import os
import sys
dir_path = os.path.realpath(os.path.dirname(sys.argv[0]))
它returns:
dir_path = C:\Python27\lib\site-packages\spyderlib\widgets\externalshell
不是我想要的结果。
(2) 但是,如果我 运行 我的整个脚本 (F5),我可以获得我期望的结果(这是我脚本的当前目录):
dir_path = C:\Users\abc\Desktop\py
(3) 另外如果我:
- 运行整个脚本,
- %重置变量,
- 运行 与之前相同的选择行,
只要我不退出spyder:[=16=,我仍然可以获得我脚本的当前目录]
有人可以解释一下吗?我们将不胜感激。非常感谢!dir_path = C:\Users\abc\Desktop\py
要获取您当前的完整路径名,您可以使用
os.path.realpath(os.path.curdir)
至于混淆,打印sys.argv
检查一下。它的内容可以包含不同的值,具体取决于您的脚本的调用方式。如果我只是进入 python 解释器,它包含一个包含空字符串的列表,但如果我调用 python myscript.py
,它将包含脚本名称,后跟任何参数。