前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python修改linux中文件(文件夹)的权限属性操作

python修改linux中文件(文件夹)的权限属性操作

作者头像
砸漏
发布2020-11-05 10:02:04
5K0
发布2020-11-05 10:02:04
举报
文章被收录于专栏:恩蓝脚本

今天生成的对流云团路径图片放在linux下,文件的权限都是rw,没有x,后续的别人的程序调用不了,这里附上对三个属性的简单解释,有不够的欢迎大家补充

Linux的权限不是很细致,只有RWX三种

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。

x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。

2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。

3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外

4、目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件

好了话归正题,下面是重点了:

os.chmod(path,mode) 这个方法应该很简单,只需要2个参数,一个是路径,一个是说明路径的模式,

下面列出了这个用法中可以使用的一些常用的模式:

stat.S_ISUID: Set user ID on execution. 不常用

stat.S_ISGID: Set group ID on execution. 不常用

stat.S_ENFMT: Record locking enforced. 不常用

stat.S_ISVTX: Save text image after execution. 在执行之后保存文字和图片

stat.S_IREAD: Read by owner. 对于拥有者读的权限

stat.S_IWRITE: Write by owner. 对于拥有者写的权限

stat.S_IEXEC: Execute by owner. 对于拥有者执行的权限

stat.S_IRWXU: Read, write, and execute by owner. 对于拥有者读写执行的权限

stat.S_IRUSR: Read by owner. 对于拥有者读的权限

stat.S_IWUSR: Write by owner. 对于拥有者写的权限

stat.S_IXUSR: Execute by owner. 对于拥有者执行的权限

stat.S_IRWXG: Read, write, and execute by group. 对于同组的人读写执行的权限

stat.S_IRGRP: Read by group. 对于同组读的权限

stat.S_IWGRP: Write by group. 对于同组写的权限

stat.S_IXGRP: Execute by group. 对于同组执行的权限

stat.S_IRWXO: Read, write, and execute by others. 对于其他组读写执行的权限

stat.S_IROTH: Read by others. 对于其他组读的权限

stat.S_IWOTH: Write by others. 对于其他组写的权限

stat.S_IXOTH: Execute by others. 对于其他组执行的权限

下面是例子:

代码语言:javascript
复制
import os,stat   
os.chmod('abc',stat.S_IREAD)  
os.chmod('abc',stat.S_IREAD+stat.S_IWOTH)
os.chmod(outputpath,stat.S_IRWXO+stat.S_IRWXG+stat.S_IRWXU)

最后一行当时设置的时候我连写了三行,每一行分别写一个参数,得到的结果分别是——-rwx,—-rwx—,-rwx——,真是被自己的愚蠢打败了哈哈哈,用加号就能得到-rwxrwxrwx,就是要把user,group和others分别设置加起来。

补充知识:linux下python代码只在文件目录下才能调用,在其他路径输入绝对路径不能执行

没想到python代码放到linux下会碰到这么多事,在代码所在的目录下就可以执行,然后跳出一层,用绝对路径就不能调用,应该是代码中用到了相对路径,但是你当前的相对路径并不在文件所在目录,所以并不能成功调用,大概是这个样子。

下面是解决方案:

par_dir = os.path.dirname(os.path.abspath(__file__)) os.chdir(par_dir)

也是技术大哥传授的姿势~

os.path.abspath(__file__)求出文件所在的绝对路径,具体到文件的名.py。通过os.path.dirname求出文件所在的目录地址,再通过os.chdir来吧当前路径切换到文件所在的路径,就可以了。

以上这篇python修改linux中文件(文件夹)的权限属性操作就是小编分享给大家的全部内容了,希望能给大家一个参考。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档