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
廣告