Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pathlib,父';s parent只返回第一个父级本身(parent.parent==parent)_Python_Python 3.x_Pathlib - Fatal编程技术网

Python 使用pathlib,父';s parent只返回第一个父级本身(parent.parent==parent)

Python 使用pathlib,父';s parent只返回第一个父级本身(parent.parent==parent),python,python-3.x,pathlib,Python,Python 3.x,Pathlib,我正在尝试查找脚本所在目录的父目录: this = pathlib.Path(__name__) parent = this.parent parent2 = parent.parent 但是打印出来表明第二个.parent不起作用: print(this, this.absolute()) print(parent, parent.absolute()) print(parent2, parent2.absolute()) print(this.parent == this.parent.p

我正在尝试查找脚本所在目录的父目录:

this = pathlib.Path(__name__)
parent = this.parent
parent2 = parent.parent
但是打印出来表明第二个
.parent
不起作用:

print(this, this.absolute())
print(parent, parent.absolute())
print(parent2, parent2.absolute())
print(this.parent == this.parent.parent)
产生以下输出:

__main__ C:\Users\Markus\Projects\PathTest\bin\__main__
. C:\Users\Markus\Projects\PathTest\bin
. C:\Users\Markus\Projects\PathTest\bin
True

我不知道,会是什么问题?

如打印输出所示:如果
parent='。
parent。parent
也将是

尝试事先解决路径问题:

this = Path(__file__).resolve()

还要注意,
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;非
\uuuu main\uuu
如打印输出所示:如果
parent='.
parent.parent
也将是

尝试事先解决路径问题:

this = Path(__file__).resolve()

还要注意,
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;使用
this=Path(\uuuuu main\uuuuuu)
时,不使用
\uuuuuu main\uuuuuuu

一切正常。。。什么是
Parent
?什么是
print(\uuuuu name\uuuuuu)
?如果我在MacOS上运行你的代码,
\uuu name\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。在我的情况下,没有扩展到完整路径,但每个平台可能会有所不同。
absolute
将把相对路径与当前工作目录连接起来。@9769953是的,运行
print(\uu name\uuuuuuuu)
会给我
\uuu main\uuuuuuuuuuu
,但我不明白为什么不能在上面运行两次
.parent
,它非常了解
absolute()
路径。您上次的编辑显示了问题:pathlib使用的是相对目录名,而不是绝对路径名。因此,它会在单曲上“卡住”。目录,并且绝对路径也保持不变。使用
this=path(\uuuu main\uuu)
。。。什么是
Parent
?什么是
print(\uuuuu name\uuuuuu)
?如果我在MacOS上运行你的代码,
\uuu name\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。在我的情况下,没有扩展到完整路径,但每个平台可能会有所不同。
absolute
将把相对路径与当前工作目录连接起来。@9769953是的,运行
print(\uu name\uuuuuuuu)
会给我
\uuu main\uuuuuuuuuuu
,但我不明白为什么不能在上面运行两次
.parent
,它非常了解
absolute()
路径。您上次的编辑显示了问题:pathlib使用的是相对目录名,而不是绝对路径名。因此,它会在单曲上“卡住”。目录,并且绝对路径也保持不变。好吧,我想我现在理解了这个问题,但是
.resolve()
似乎没有任何作用,所有打印输出都保持不变。我这样做对吗<代码>this=pathlib.Path(_name__).resolve();打印(本);打印(this.parent.parent==this.parent)
它只输出:
\uuuuu main\uuuuu
True
\uuuu file\uuuuuu
而不是
\uuu main\uuuu
是文件的路径。您是否有名为
\uuuuu main\uuuu
的文件或目录?甚至可以尝试:
Path(
file.resolve(strict=True)
以确保该文件存在。我没有,我有一个包含上述3行的
test.py
文件和
import pathlib
,并且我正在获得
打印(this)
的输出
main\uu
,然后我建议您尝试:
this=Path(\uu文件)。resolve(strict=True)
。再次说明:
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu>而不是作为参数。好吧,我想我现在理解这个问题了,但是
.resolve()
似乎什么都不做,所有的打印输出都是一样(this.parent.parent==this.parent)
它只输出:
\uuuuuu main\uuuuu
True
\uuuuu file\uuuuuuuuuu
而不是
\uuuuuu main\uuuuuuuuuuu
是文件的路径。您是否有一个名为
\uuuuuuu main\uuuuuuuuuuuu
的文件或目录?甚至可以尝试:
路径(\uuuuuuuuuuuuuuuuuuuuu
以确保该文件存在。我没有,我有一个包含上述3行的
test.py
文件和
import pathlib
,我将获得
打印(this)
的输出
main\uuuuuuuuuuuuuu
,然后我建议您尝试:
this=Path(\uuuuuu文件)。解析(strict=True)
。再次:
\uuuuu文件
而不是
\uuuuuu主
作为参数。