用open判断文件系统层面的读写权限

2019年11月20日 / 351次阅读 / Last Modified 2019年11月21日
内置函数

python的文件对象,有readable函数和writable函数,但判断文件在系统层面是否具有读写权限,这两个函数都用不上,open函数就够了。只要open函数没有抛出PermissionError的异常,文件就是可读或可写的。

-rw-r-----. 1 root root  8995 Nov 20 10:31 random9.jpg

这个文件,只有root可以读。

>>> f = open('random9.jpg')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: 'random9.jpg'

open的时候(默认的打开方式是r,read),就PermissionError,这样就可以判断文件是否可读了。

而在python中判断文件是否可写,就要以有写的方式调用open函数,比如w+或a等等。(open函数打开文件的方式汇总

-rw-r--r--. 1 root root  6699 Nov 20 10:31 random8.jpg

这个文件,其它用户有read权限,但是不能写。

>>> f = open('random8.jpg', 'a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: 'random8.jpg'

依然是PermissionError异常,文件不可写。

当然,在python中还有其它判断文件读写权限的方式,只是本文介绍的这个方法,比较直观和简单。

-- EOF --

本文链接:https://www.pynote.net/archives/1535

留言区

《用open判断文件系统层面的读写权限》有1条留言

您的电子邮箱地址不会被公开。 必填项已用*标注

  • 麦新杰

    open函数慎用w参数,它会让文件原来的内容全部消失。 [回复]


前一篇:
后一篇:

More

麦新杰的Python笔记

Ctrl+D 收藏本页


©Copyright 麦新杰 Since 2019 Python笔记

go to top