需要一些帮助来理解pathlib中的当前工作目录



我正在Python中学习pathlib。

我创建了一个脚本,printcwd.py:

from pathlib import Path
mypath = Path()
print (mypath.cwd())

如果我在任何文件夹中双击python脚本,这将给我带来预期的结果——它将把该文件夹的路径打印为cwd。

但是,如果我在VSCode(或powershell(中的终端中运行脚本,它将始终为我提供cwd,无论终端的当前目录设置为什么,而不是printcwd.py文件的位置。

例如,如果我将文件放在C:\中并运行它,它会将C:\打印为cwd((

但是,如果我在终端设置为C:\Otherfolder的VSCode中运行它,它将运行以下内容:

PS C:\Otherfolder>amp;C:/Users/name/AppData/Local/Programs/Python/Python39/Python.exeC:/printpath.py

并打印:C:\Otherfolder,尽管C:\中存在.py文件

那么,这里发生了什么?

CWD是终端的属性,而不是python进程的属性。双击该文件时,Windows会在目录中创建一个终端并运行该文件。cwd函数只访问此属性。

如果要获取文件所在的目录,请使用Path(__file__).parent。这种访问使用python创建的模块魔术变量来指向文件的放置位置。

相关内容

  • 没有找到相关文章

最新更新