[英]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.