Python os.path.samefile() 方法



Python 的 **os.path.samefile()** 方法用于检查文件系统中两个指定的路径是否指向同一个文件或目录。它比较路径引用的实际文件或目录,而不仅仅是它们的路径字符串。

如果两个路径都指向同一个文件或目录(即使它们使用不同的路径字符串指定),该方法将返回 True。如果路径不指向同一个文件或目录,则返回 False。

符号链接在比较之前会解析到其目标路径,因此,如果两个路径都解析到同一个文件或目录,则 samefile() 方法将返回 True。

语法

以下是 Python os.path.samefile() 方法的基本语法:

os.path.samefile(path1, path2)

参数

此方法接受以下参数:

  • **path1** - 表示要比较的第一个路径名的字符串。

  • **path2** - 表示要比较的第二个路径名的字符串。

返回值

该方法返回布尔值“True”或“False”。如果两个路径都指向同一个文件或目录,则返回 True,否则返回 False。

示例

在下面的示例中,我们使用 samefile() 方法检查“path1”和“path2”是否指向同一个文件:

import os
path1 = "C://Users//Lenovo//Desktop//file.txt"
path2 = "C://Users//Lenovo//Desktop//file.txt"
result = os.path.samefile(path1, path2)
print("The result obtained is:",result)   

输出

以下是上述代码的输出:

The result obtained is: True

示例

在这里,我们检查两个不同的路径“path1”和“path2”是否指向同一个文件:

import os
path1 = "C://Users//Lenovo//Desktop//file.txt"
path2 = "C://Users//Lenovo//Documents//file.txt"
result = os.path.samefile(path1, path2)
print("The result obtained is:",result) 

输出

由于它们具有不同的路径,即使文件名相似,输出也将为 False,如下所示:

The result obtained is: False

示例

此示例检查“path1”和“path2”是否指向同一个文件。该方法将相对路径解析为绝对路径并进行比较:

import os
path1 = "C://Users//Lenovo//Desktop//file.txt"
path2 = "../Desktop/file.txt"
result = os.path.samefile(path1, path2)
print("The result obtained is:",result)

输出

我们得到如下所示的输出:

The result obtained is: True

示例

现在,我们检查“path1”和“path2”是否指向同一个文件。由于两个路径都不存在,该方法返回“FileNotFoundError”:

import os
path1 = "/home/lenovo/documents/file.txt"
path2 = "/home/lenovo/documents/file.txt"
result = os.path.samefile(path1, path2)
print(result)  

输出

产生的结果如下:

Traceback (most recent call last):
  File "C:\Users\Lenovo\Desktop\untitled.py", line 4, in <module>
    result = os.path.samefile(path1, path2)
  File "<frozen genericpath>", line 112, in samefile
FileNotFoundError: [WinError 3] The system cannot find the path specified: '/home/lenovo/documents/file.txt'
os_path_methods.htm
广告