Python中的os模块提供了很多不同的方法和函数来处理系统路径。os.path.commonpath()函数返回公共路径,而不是公共字符串前缀。
Python os.path.commonpath()
os.path.commonpath()是一个内置的Python方法,用于在一个路径列表中找到最长的公共子路径。如果指定的路径列表同时包含绝对路径和相对路径或者是空的,commonpath()方法会引发ValueError。
语法
os.path.commonpath(list)
参数
它是一个类路径对象的列表。类路径对象是一个字符串或字节对象,代表一个路径。
返回值
commonpath()方法返回一个字符串值,代表输入列表中最长的共同子路径。
例子
让我们定义一个由三个路径组成的列表,用**os.path.commonpath()**函数找出最长的共同路径。
import os
paths = ['/Users/krunal/Desktop',
'/Users/krunal/Desktop/code',
'/Users/krunal/Desktop/datasets']
prefix = os.path.commonpath(paths)
print("The Longest Common Path Is: ", prefix)
输出结果
The Longest Common Path Is: /Users/krunal/Desktop
你可以看到**"/Users/krunal/Desktop "**字符串在三个路径中都是通用的。所以它返回那个共同的长字符串。
混合绝对路径和相对路径
如果你在列表中混合了绝对路径和相对路径,并对它们应用commonpath()函数,那么就会引发ValueError。
import os
paths = ['Users/krunal',
'/Users/krunal/Desktop/code',
'Users/krunal/Desktop']
prefix = os.path.commonpath(paths)
print("The Longest Common Path Is: ", prefix)
输出
Traceback (most recent call last):
File "/Users/krunal/Desktop/code/pyt/database/app.py", line 7, in <module>
prefix = os.path.commonpath(paths)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/posixpath.py", line 510, in commonpath
raise ValueError("Can't mix absolute and relative paths") from None
在这个例子中,我们在列表中混合了绝对路径和相对路径,然后把这个列表传递给commonpath()函数。
这就是Python中os.path.commonpath()函数的全部内容。