繁体   English   中英

系统中不存在的 Python `pathlib` 分辨率中的奇怪路径

[英]Weird Path in Python `pathlib` resolution that doesn't exist in system

我将在媒体资源中跳转到代码:

from pathlib import Path
import os
p = Path(os.getenv("APPDATA")).joinpath(r"Microsoft\WindowsApps")

p.resolve()  # gives 'C:/Users/Alex/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0/LocalCache/Roaming/Microsoft/WindowsApps' 

为什么会这样? 系统说没有这样的路径p ,我检查隐藏文件,连符号链接都没有。 为什么要解决那条路?

Path.resolve()只是使路径成为绝对路径,如果您还想检查解析路径是否为现有路径,则需要设置Path.resolve(strict=True)或在解析路径上调用.exists() .

https://docs.python.org/3/library/pathlib.html#pathlib.Path.resolve

乙:

在我的机器上按块测试这个并且似乎按预期工作:

from pathlib import Path
import os

p = Path(os.getenv("APPDATA"))
print(p)
p = p.joinpath(r"Microsoft\WindowsApps")
print(p)
p = p.resolve()
print(p)
p = p.joinpath("..")
print(p)
p = p.resolve()
print(p)

Output:

C:\Users\tzane\AppData\Roaming
C:\Users\tzane\AppData\Roaming\Microsoft\WindowsApps
C:\Users\tzane\AppData\Roaming\Microsoft\WindowsApps
C:\Users\tzane\AppData\Roaming\Microsoft\WindowsApps\..
C:\Users\tzane\AppData\Roaming\Microsoft

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM