需求:

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

某文件系统目录下有一系列文件:
    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进行或运算

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

  1. linux 查询目录下包含关键字的所有文件

    linux查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有 ...

  2. python实现指定目录下批量文件的单词计数:并发版本

    在 文章 <python实现指定目录下批量文件的单词计数:串行版本>中, 总体思路是: A. 一次性获取指定目录下的所有符合条件的文件 -> B. 一次性获取所有文件的所有文件行 - ...

  3. python基础班-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python基础班-淘宝-目录.txt│ ├─1-1 Linux基础│ ├─01-课程简介│ │ 01-课程 ...

  4. linux查看目录下各个文件大小的命令

    linux查看目录下各个文件大小的命令 由于需要经常查看各个文件的具体大小 ,所以这里记一下. 命令如下: du -h --max-depth=1

  5. linux替换目录下所有文件中的某字符串

    linux替换目录下所有文件中的某字符串 比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g&quo ...

  6. [转帖]Linux /tmp目录下执行脚本失败提示Permission denied

    Linux /tmp目录下执行脚本失败提示Permission denied https://www.cnblogs.com/linyfeng/p/11087655.html 国产化的环境上 就有一个 ...

  7. [转帖]linux /proc目录下的文件为何无法用vi编辑保存

    linux /proc目录下的文件为何无法用vi编辑保存 https://blog.51cto.com/xlogin/1216914 学习一下 之前看过书 这一点 没太仔细看.. xlogin关注8人 ...

  8. Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例

    1. 复制指定目录下指定后缀名的文件并修改名称的案例     需求:复制指定目录下的指定文件,并修改后缀名.  • 指定的文件是:.java文件.     • 指定的后缀名是:.jad     • 指 ...

  9. shell下批量重命名svn文件的方法

    shell下批量重命名svn文件的方法 目标: 将svn目录下所有文件重命名 , 原文件前缀为 ucc_ , 批量改为 xmd_ 用tree看下当前svn目录 ucc_1.c ucc_1.h ucc_ ...

随机推荐

  1. Nginx详解二十八:Nginx架构篇Nginx+Lua的安全waf防火墙

    Nginx+Lua的安全waf防火墙 看一下别人写好的:https://github.com/loveshell/ngx_lua_waf 先安装git:yum -y install git 在/opt ...

  2. Python老男孩

    1.可以自己编写模块,但注意:如果想要调用该模块,需要将该模块放到site-packages目录下,或将该模块放在执行程序的路径下. 2.pyc文件是什么? 集合: set 集合可以去重:做交集.并集 ...

  3. linux 将自己的服务添加到系统service服务

    前言 我们在linux上要启动一个程序得时候, 往往都是要写一堆路径, 找到要启动得服务程序, 再用 ./*** 启动服务. 那么我们有没有快速启动方法吗, 答案是肯定得 service 介绍 官方介 ...

  4. Jmeter中通过beanshell写入CSV的脚本

    import com.csvreader.CsvWriter; String NewDataPath=bsh.args[0]; NewDataPath=NewDataPath.replaceAll(& ...

  5. mysql 语句的使用清库数据转移

    mysql清空数据库表 方法1:重建库和表用mysqldump --no-data把建表SQL导出来,然后drop database再create database,执行一下导出的SQL文件: 方法2 ...

  6. 如何使用Scrapy框架实现网络爬虫

    现在用下面这个案例来演示如果爬取安居客上面深圳的租房信息,我们采取这样策略,首先爬取所有租房信息的链接地址,然后再根据爬取的地址获取我们所需要的页面信息.访问次数多了,会被重定向到输入验证码页面,这个 ...

  7. hdfs数据到hbase过程

    需求:将HDFS上的文件中的数据导入到hbase中 实现上面的需求也有两种办法,一种是自定义mr,一种是使用hbase提供好的import工具 一.hdfs中的数据是这样的 hbase创建好表 cre ...

  8. OOP和面向对象

    OOP具有三大特点 1.封装性:也称为信息隐藏,就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法.于是开发人员只 需要关注这个类如何使用,而不用去关 ...

  9. TodoMVC:帮助你选择一个MV*框架

    开发者现在有很多的MV*框架选择来组织开发web应用程序.Backbone. Ember.AngularJS.Spine… 新的稳定解决方案列表持续增长,但你如何决定在海量的框架中选择哪个使用? 为了 ...

  10. nginx配置http和https共存

    server { listen ; listen ssl; server_name localhost; #ssl on; ssl_certificate /usr/local/Tengine/ssl ...