gpt4 book ai didi

python - 比较Python中的两个路径

转载 作者:行者123 更新时间:2023-12-03 00:35:05 35 4
gpt4 key购买 nike

考虑:

path1 = "c:/fold1/fold2"
list_of_paths = ["c:\\fold1\\fold2","c:\\temp\\temp123"]

if path1 in list_of_paths:
print "found"

我希望 if 语句返回 True,但其计算结果为 False,因为它是字符串比较。

如何比较两条路径,无论它们有正斜杠还是反斜杠?我不想使用 replace 函数将两个字符串转换为通用格式。

最佳答案

使用os.path.normpathc:/fold1/fold2 转换为 c:\fold1\fold2:

>>> path1 = "c:/fold1/fold2"
>>> list_of_paths = ["c:\\fold1\\fold2","c:\\temp\\temp123"]
>>> os.path.normpath(path1)
'c:\\fold1\\fold2'
>>> os.path.normpath(path1) in list_of_paths
True
>>> os.path.normpath(path1) in (os.path.normpath(p) for p in list_of_paths)
True
  • os.path.normpath(path1) in map(os.path.normpath, list_of_paths) 也可以,但它会构建一个包含整个路径项的列表,即使中间有匹配项。 (在 Python 2.x 中)

在 Windows 上,您必须使用 os.path.normcase比较路径,因为在 Windows 上,路径不区分大小写。

关于python - 比较Python中的两个路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158667/

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