簡體   English   中英

如何在不打開文件的情況下測試文件在python中是否可讀?

[英]How to test if a file is readable in python without opening the file?

想要通過檢查文件的屬性/權限來測試文件在Linux系統上的python中是否可讀。

python的新手,我正在perl / bash中尋找以下內容的等效項。

[[-r $ {filename}]]

要么

如果(-r $ filename){...}

我只是打開文件以檢查其可讀性:

def isFileReadable2 (filename):
    # check to see if file is readable
    # by trying to open a file in readonly mode
    # if an exception occurs,
    # then either the file didnt exist, or file was NOT readable
    try:
        import stat
        mode = os.stat(filename).st_mode
        fh = open (filename, 'r')
    except IOError as err:
        print ("Error opening file {}:{}\n". format (filename, err))
    else:
        fh.close ()
        return True
    return False

我確實注意到stat_result的位模式與文件許可權相對應,即st_mode = 32832轉換為0b1000000001000000,這反過來告訴我該文件僅是用戶可執行文件,而根本不可讀,恰好是正確的。

因此,盡管我可以使用適當的位掩碼進行檢查,但是os.stat_result對象是否有更好的可移植接口? 特別是st_mode值?

考慮使用os.fstat,但是返回相同的stat_result對象。

tia,

您可以使用函數os.access

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM