当我在IDLE
中运行以下脚本时import os
print(os.getcwd())
我输出为
D:\testtool
但是当我从cmd提示符运行时,我得到了
c:\Python33>python D:\testtool\current_dir.py
c:\Python33
如何获得使用IDLE获得的相同结果?
答案 0 :(得分:69)
似乎IDLE将其当前工作目录更改为执行脚本的位置,而使用cmd运行脚本时不会这样做,它会保留CWD。 p>
要将当前工作目录更改为包含脚本的目录,您可以使用:
import os
os.chdir(os.path.dirname(__file__))
print(os.getcwd())
只有从文件执行脚本时,__file__
变量才可用,并且它包含文件的路径。更多相关信息:Python __file__ attribute absolute or relative?
答案 1 :(得分:4)
使用pathlib可以获取当前文件所在的文件夹。 __file__
是加载模块的文件的路径名。
参考:docs
import pathlib
current_dir = pathlib.Path(__file__).parent
current_file = pathlib.Path(__file__)
文件编号:link
答案 2 :(得分:2)
Python 的默认 pathlib
库提供如下 cwd:
import pathlib
pathlib.Path.cwd()