想通过检查其属性/权限来测试linux系统中python中的文件是否可读。
python的新手,我正在寻找perl / bash中的以下内容。
[[-r $ {filename}]]
或
if(-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,