Python os.path.commonpath() 函数的完整指南

770 阅读1分钟

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()函数的全部内容。