Python 需要了解pathlib中当前工作目录的帮助吗
我正在用Python学习pathlib 我创建了一个脚本printcwd.py:Python 需要了解pathlib中当前工作目录的帮助吗,python,directory,pathlib,cwd,Python,Directory,Pathlib,Cwd,我正在用Python学习pathlib 我创建了一个脚本printcwd.py: from pathlib import Path mypath = Path() print (mypath.cwd()) 如果我在任何文件夹中双击python脚本,就会得到预期的结果——它会将该文件夹的路径打印为cwd 但是,如果我在VSCode(或powershell)中的终端中运行脚本,它将始终将cwd作为终端的当前目录设置为什么,而不是printcwd.py文件的位置 比如说,, 如果我将文件放在C:
from pathlib import Path
mypath = Path()
print (mypath.cwd())
如果我在任何文件夹中双击python脚本,就会得到预期的结果——它会将该文件夹的路径打印为cwd
但是,如果我在VSCode(或powershell)中的终端中运行脚本,它将始终将cwd作为终端的当前目录设置为什么,而不是printcwd.py文件的位置
比如说,,
如果我将文件放在C:\中并运行它,它会将C:\打印为cwd()
但是,如果我在VSCode中运行它并将终端设置为C:\Otherfolder,它将运行以下命令:
PS C:\Otherfolder>&
C:/Users/name/AppData/Local/Programs/Python/Python39/Python.exe
C:/printpath.py
并打印:C:\Otherfolder,尽管C中存在.py文件:\
那么,这里发生了什么呢?CWD是终端的属性,而不是python进程的属性。双击该文件时,Windows会在目录中创建一个终端并运行该文件。
cwd
函数仅访问此属性
如果要获取文件所在的目录,请使用
Path(\uuu file\uuu).parent
。此访问使用python创建的模块魔术变量指向文件的放置位置。谢谢。假设您想要创建一个脚本,该脚本在与脚本相同的目录中创建了一组文件夹。为了确保总是发生这种情况,您是否会编写os.chdir(Path(\uu file\uu).parent)
以确保cwd始终与文件位置相同?我不会这样做。我只想将文件夹创建为路径(\uuu file\uuu).parent
的子文件夹。根本不改变CWD。例如,创建一个常量BASE\u DIR
,然后使用BASE\u DIR/'a'
为名为a
的文件夹创建路径对象。确定,如BASE\u DIR=Path(uuu文件)。parent
?是。这就是我的意思。谢谢。你能详细解释一下为什么你认为修改cwd不是一个好的做法吗?