如何使用python 3获取当前工作目录?

Shr*_*ram 52 working-directory file-location python-3.x

当我在IDLE中运行以下脚本时

import os
print(os.getcwd())
Run Code Online (Sandbox Code Playgroud)

我输出为

D:\testtool
Run Code Online (Sandbox Code Playgroud)

但是当我从cmd提示符运行时,我得到了

c:\Python33>python D:\testtool\current_dir.py
c:\Python33
Run Code Online (Sandbox Code Playgroud)

我如何获得使用IDLE获得的相同结果?

Mac*_*iek 82

似乎IDLE将其当前工作目录更改为执行脚本的位置,而使用cmd运行脚本时不会这样做,它会保留CWD.

要将当前工作目录更改为包含脚本的目录,您可以使用:

import os
os.chdir(os.path.dirname(__file__))
print(os.getcwd())
Run Code Online (Sandbox Code Playgroud)

__file__只有从文件执行脚本时,该变量才可用,并且该变量包含文件的路径.更多关于它:Python __file__属性绝对或相对?


uke*_*emi 11

Python 的默认pathlib库提供了 cwd,如下所示:

import pathlib

pathlib.Path.cwd()
Run Code Online (Sandbox Code Playgroud)

  • 太好了,我正在寻找 pathlib 库 (2认同)

小智 8

使用pathlib可以获取当前文件所在的文件夹。__file__是从中加载模块的文件的路径名。参考:docs

import pathlib

current_dir = pathlib.Path(__file__).parent
current_file = pathlib.Path(__file__)
Run Code Online (Sandbox Code Playgroud)

文档参考:链接

  • 给您的答案一个恰当的描述 (5认同)
  • 当前文件位置和当前工作目录不能不同吗? (2认同)