python基础一 ------linux某目录下批量的为特定文件加入可执行权限

需求:

一个文件夹中有个文件,要求对特定的文件加入可执行权限

某文件系统目录下有一系列文件:
    quicksort
    graph.py
    heap.java
    install.sh
    stack.cpp
    .....
编写程序对所有的.sh文件和.py文件加上用户可执行权限

 

解决方法:    

    使用字符串的str.startswith()和str.endswith()方法
  注意,多个匹配时参数使用元组

 

一:首先创建几个文件,如图(并没有可执行权限)

二:具体代码实现(还可以通过列表表达式)

实现效果:

讲解:

  os.listdir(".") :将所在的文件夹下所有文件名以列表形式返回

      x.endswith(".sh")  判断x这个字符串是否以.sh文件结尾

  x.endwith((".sh",",py"))   判断这个字符串是否以.sh或者.py文件结尾;注意,必须是元组类型

  

执行权限是怎样被改变的?

 

  os.stat("a.sh")  查看文件的属性

  

  注:此部分参考了  这篇博文

  st_mode   ------>    权限模式(十进制)

  st_ino   --------->       inode number

    st_dev  --------->     device

      st_nlike  -------->  number of hard links 

  st_uid    -------->  所有用户的user_id

      st_gid -----------> 所有用户组的group_id

      st_size ---------->  文件大小,以位为单位

  st_atime   --------->   文件最后的访问时间

  st_mtime   -------->  文件的最后修改时间

  st_ctime  --------->  文件的创建时间

  

  查看文件的权限信息,转八进制,看到 764

  修改权限: 只需将文件的权限与stat.S_IXUSR进行或运算

 

posted @ 2017-05-22 17:21  若鸟  阅读(2811)  评论(0编辑  收藏  举报