gpt4 book ai didi

python-3.x - 如何测试对象是否为pathlib路径?

转载 作者:行者123 更新时间:2023-12-03 15:18:57 26 4
gpt4 key购买 nike

我想测试obj是否是pathlib路径,并意识到条件type(obj) is pathlib.PosixPath将是Windows计算机上生成的路径的False

因此,问题是,有没有一种方法可以测试对象是否为pathlib路径(任何可能的PathPosixPathWindowsPathPure... -analogs)而无需显式检查所有6个版本?

最佳答案

是的,使用isinstance()。一些示例代码:

# Python 3.4+
import pathlib

path = pathlib.Path("foo/test.txt")
# path = pathlib.PureWindowsPath(r'C:\foo\file.txt')

# checks if the variable is any instance of pathlib
if isinstance(path, pathlib.PurePath):
print("It's pathlib!")

# No PurePath
if isinstance(path, pathlib.Path):
print("No Pure path found here")
if isinstance(path, pathlib.WindowsPath):
print("We're on Windows")
elif isinstance(path, pathlib.PosixPath):
print("We're on Linux / Mac")
# PurePath
else:
print("We're a Pure path")

为什么 isinstance(path, pathlib.PurePath)适用于所有类型?看一下这个图:

PathLib overview

我们看到 PurePath在顶部,这意味着其他所有内容都是它的子类。因此,我们只需要检查这一点。 Path检查非纯路径的原因相同。

奖励:您可以使用 isinstance(path, (pathlib.WindowsPath, pathlib.PosixPath))中的元组一次检查两种类型。

关于python-3.x - 如何测试对象是否为pathlib路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58647584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com