Python os.path.sameopenfile() 方法



Python 的 os.path.sameopenfile() 方法用於檢查兩個檔案描述符是否引用檔案系統中的同一個檔案或目錄。

如果兩個檔案描述符都引用同一個開啟的檔案或目錄(即使它們是不同的描述符),則該方法返回 True。如果檔案描述符不引用同一個開啟的檔案或目錄,則返回 False。

語法

以下是 Python os.path.sameopenfile() 方法的基本語法:

os.path.sameopenfile(fp1, fp2)

引數

此方法接受以下引數:

  • fp1 − 這是要比較的第一個檔案的檔案描述符。

  • fp2 − 這是要比較的第二個檔案的檔案描述符。

返回值

該方法返回布林值“True”或“False”。如果兩個檔案描述符都引用同一個檔案,則返回 True,否則返回 False。

示例

在以下示例中,我們使用不同的檔案描述符“fd1”和“fd2”兩次開啟同一個檔案“C://Users//Lenovo//Desktop//file.txt”。然後,我們使用 sameopenfile() 方法檢查這兩個檔案描述符是否引用同一個檔案:

import os
fd1 = os.open("C://Users//Lenovo//Desktop//file.txt", os.O_RDONLY)
fd2 = os.open("C://Users//Lenovo//Desktop//file.txt", os.O_RDONLY)
result = os.path.sameopenfile(fd1, fd2)
print("The result obtained is:",result)    

輸出

以下是上述程式碼的輸出:

The result obtained is: True

示例

這裡,我們使用不同的檔案描述符“fd1”和“fd2”開啟兩個不同的檔案。然後,我們檢查這兩個檔案描述符是否引用同一個檔案:

import os
fd1 = os.open("C://Users//Lenovo//Desktop//file.txt", os.O_RDONLY)
fd2 = os.open("C://Users//Lenovo//Desktop//file2.txt", os.O_RDONLY)
result = os.path.sameopenfile(fd1, fd2)
print("The result obtained is:",result)   

輸出

上述程式碼的輸出如下:

The result obtained is: False

示例

此示例使用檔案描述符“fd1”開啟檔案“file.txt”,關閉“fd1”,然後使用新的檔案描述符“fd2”再次開啟同一個檔案,並檢查這兩個檔案描述符是否引用同一個檔案。

即使“fd1”已關閉,其檔案描述符在作業系統重新使用它之前仍與同一個檔案關聯,因此輸出為 True:

import os
fd1 = os.open("C://Users//Lenovo//Desktop//file.txt", os.O_RDONLY)
os.close(fd1)
fd2 = os.open("C://Users//Lenovo//Desktop//file.txt", os.O_RDONLY)
result = os.path.sameopenfile(fd1, fd2)
print("The result obtained is:",result)   

輸出

產生的結果如下:

The result obtained is: True

示例

現在,我們使用檔案描述符“fd1”和“fd2”開啟兩個檔案,然後檢查這兩個檔案描述符是否引用同一個檔案。由於這兩個檔案都不存在,因此該方法返回“FileNotFoundError”:

import os
fd1 = os.open("/home/lenovo/documents/file.txt", os.O_RDONLY)
fd2 = os.open("/home/lenovo/documents/file.txt", os.O_RDONLY)
result = os.path.sameopenfile(fd1, fd2)
print("The result obtained is:",result)  

輸出

我們得到如下所示的輸出:

Traceback (most recent call last):
  File "C:\Users\Lenovo\Desktop\untitled.py", line 2, in <module>
    fd1 = os.open("/home/lenovo/documents/file.txt", os.O_RDONLY)
FileNotFoundError: [Errno 2] No such file or directory: '/home/lenovo/documents/file.txt'
os_path_methods.htm
廣告

© . All rights reserved.