1、相关介绍

1.1修改文件权限和查看文件权限

在windows平台实验时 os.chmod()无法将文件权限修改为可执行,暂不深究如何实现。在linux平台进行测试。

(1)创建三个文件

python@ubuntu:/tmp/vmware-python$ ls

vmware-apploader-5673.log

python@ubuntu:/tmp/vmware-python$ touch a.py b.sh c.txt

python@ubuntu:/tmp/vmware-python$ ls -l

总用量 8

-rw-rw-r-- 1 python python    0 10月 26 17:26 a.py

-rw-rw-r-- 1 python python    0 10月 26 17:26 b.sh

-rw-rw-r-- 1 python python    0 10月 26 17:26 c.txt

-rw-r----- 1 python python 4532 10月 26 17:22 vmware-apploader-5673.log

(2)在linux shell界面进入python shell

python@ubuntu:/tmp/vmware-python$ python

Python 2.7.12 (default, Jul  1 2016, 15:12:24)

[GCC 5.4.0 20160609] on linux2

Type "help", "copyright", "credits" or "license" for more information.

(3)查看文件权限

>>> import os,stat
>>> os.stat('a.py')

posix.stat_result(st_mode=33204, st_ino=786703, st_dev=2049, st_nlink=1, st_uid=1000, st_gid=1000, st_size=0, st_atime=1509009983, st_mtime=1509009983, st_ctime=1509009983)

>>> oct(os.stat('a.py').st_mode)

'0100664'  #其中 “664”就是权限代码

(4)修改文件权限

>>> stat.S_IXUSR  #执行权限的掩码
64
>>> os.chmod('a.py',os.stat('a.py').st_mode |stat.S_IXUSR)
>>> oct(os.stat('a.py').st_mode)
''
>>> exit()

再次查看文件权限

python@ubuntu:/tmp/vmware-python$ ls

a.py  b.sh  c.txt  vmware-apploader-5673.log

python@ubuntu:/tmp/vmware-python$ ls -l

总用量 8

-rwxrw-r-- 1 python python    0 10月 26 17:26 a.py

-rw-rw-r-- 1 python python    0 10月 26 17:26 b.sh

-rw-rw-r-- 1 python python    0 10月 26 17:26 c.txt

-rw-r----- 1 python python 4532 10月 26 17:22 vmware-apploader-5673.log

1.2用符串的endswith()的方法

>>> s = 'a.py'
>>> s.endswith('.py')
True

endswith()可以接受元组参数,只要满足元组的一项,即为真。(参数只能是元组不能是列表)

>>> s.endswith(('.py','.sh'))
True
>>> s.endswith(('.sh','.txt'))
False

2、实现方法 

>>> import os,stat
>>> [x for x in os.listdir('.') if x.endswith(('.sh','.py'))]
['a.py', 'b.sh'] >>> lFile = [x for x in os.listdir('.') if x.endswith(('.sh','.py'))]
>>> for x in lFile:
... os.chmod(x,os.stat(x).st_mode | stat.S_IXUSR)
...
>>> os.listdir('.')
['vmware-apploader-5673.log', 'c.txt', 'a.py', 'b.sh']
>>> exit()

查看文件权限:

python@ubuntu:/tmp/vmware-python$ ls -l

总用量 8

-rwxrw-r-- 1 python python    0 10月 26 17:26 a.py

-rwxrw-r-- 1 python python    0 10月 26 17:26 b.sh

-rw-rw-r-- 1 python python    0 10月 26 17:26 c.txt

-rw-r----- 1 python python 4532 10月 26 17:22 vmware-apploader-5673.log

>>> import os
>>> [x for x in os.listdir('.') if x.endswith(('.sh','.py'))]
['a.py', 'b.sh']

3、扩展知识

3.1 os.stat()

>>> help(os.stat)
Help on built-in function stat in module nt: stat(...)
stat(path) -> stat result Perform a stat system call on the given path.

help(os.stat)

获取文件属性:os.stat(file),如本例中

>>> os.stat('a.py')
posix.stat_result(st_mode=33204, st_ino=786703, st_dev=2049, st_nlink=1, st_uid=1000, st_gid=1000, st_size=0, st_atime=1509009983, st_mtime=1509009983, st_ctime=1509009983)

3.2 str.startswith()

>>> help(str.startswith)
Help on method_descriptor: startswith(...)
S.startswith(prefix[, start[, end]]) -> bool Return True if S starts with the specified prefix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
prefix can also be a tuple of strings to try.

help(str.startswith)

3.3 str.endswith()

>>> help(str.endswith)
Help on method_descriptor: endswith(...)
S.endswith(suffix[, start[, end]]) -> bool Return True if S ends with the specified suffix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
suffix can also be a tuple of strings to try.

help(str.endswith)

 

4-2如何判断字符串a是否以字符串b开头或结尾的更多相关文章

  1. C#算法之判断一个字符串是否是对称字符串

    记得曾经一次面试时,面试官给我电脑,让我现场写个算法,判断一个字符串是不是对称字符串.我当时用了几分钟写了一个很简单的代码. 这里说的对称字符串是指字符串的左边和右边字符顺序相反,如"abb ...

  2. String的两个API,判断指定字符串是否包含另一字符串,在字符串中删除指定字符串。

    // 在字符串中删除指定字符串. String phoneNum="1795112345"; phoneNum = phoneNum.replace("17951&quo ...

  3. php 判断字符串在另一个字符串中位置

    $email='user@example.com';        //定义字符串$result=strstr($email,'@');         //返回子字符串echo $result; / ...

  4. Mysql查找如何判断字段是否包含某个字符串

    Mysql查找如何判断字段是否包含某个字符串   有这样一个需求,在Mysql数据库字符串字段(权限)中,用户有多个不同的邮箱,分别被‘,’分开,现在要取出某个邮箱的所有成员列表.   假设有个表: ...

  5. 【功能代码】---3 JS判断字符串是否包含某个字符串

    JS判断字符串是否包含某个字符串 var str ="abc"; if(str.indexOf("bc")>-1){ alert('str中包含bc字符串 ...

  6. go golang 判断base64数据 获取随机字符串 截取字符串

    go golang 判断base64数据 获取随机字符串 截取字符串 先少写点,占个坑,以后接着加. 1,获取指定长度随机字符串 func RandomDigits(length int) strin ...

  7. python_如何判断字符串a以某个字符串开头或结尾?

    案例: 某文件系统目录下有一系列文件: 1.c 2.py 3.java 4.sh 5.cpp ...... 编写一个程序,给其中所有的.sh文件和.py文件加上可执行权限 如何解决这个问题? 1. 先 ...

  8. mysql判断表里面一个逗号分隔的字符串是否包含单个字符串、查询结果用逗号分隔

    1.mysql判断表里面一个逗号分隔的字符串是否包含单个字符串 : FIND_IN_SET select * from tablename where FIND_IN_SET(传的参数,匹配字段) 例 ...

  9. java算法:统计数字-将数字转换成字符串,然后使用字符串String.valueOf()方法进行判断

    题目: 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值. 样例 样例 1: 输入: k = 1, n = 1 输出: 1 解释: 在 [0, 1] 中,我们发现 1 出现了 ...

  10. js判断字符串str是否包含字符串substr

    js判断字符串str是否包含字符串substr: function addUser(id,realName){ var userids = $("#userids").val(); ...

随机推荐

  1. UVa 572 Oil Deposits (Floodfill && DFS)

    题意 :输入一个m行n列的字符矩阵,统计字符“@”组成多少个八连块.如果两个字符“@”所在的格子相邻(横竖以及对角方向),就是说它们属于同一个八连块. 分析 :可以考虑种子填充深搜的方法.两重for循 ...

  2. docker-compose部署ELK(亲测)

    具体的配置可以参考上面一篇:docker部署ELK 以下是做了一些修改的地方: kibana.yml [root@topcheer config]# cat kibana.yml server.hos ...

  3. Sparrow 开发板化身电脑音量调节器

    前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正. 之前的新浪不能用啦,这次部分图片用的sm.ms的图床,加载慢,请耐心,准备换图床. 1.开箱简介 来填坑了!这次是 Sparrow ...

  4. 容器适配器————queue

    只能访问 queue<T> 容器适配器的第一个和最后一个元素.只能在容器的末尾添加新元素,只能从头部移除元素. 操作 queue<int> q;//创建一个int型的空队列q ...

  5. ModelSerializer 使用知识点_序列化和反序列化用法区别

    1.ModelSerializer  如下 from api_test.errorCode.errorCode import Statusclass RelatedbSerializer(serial ...

  6. Python os模块方法

    os模块提供了大量有用的方法来处理文件和目录.本章节中的代码实例是在 Ubuntu Linux系统上运行来演示. 大多数有用的方法都列在这里 - 编号 方法 描述/说明 1 os.access(pat ...

  7. JedisCluster和springboot整合

    maven依赖 springboot整合jedisCluster相当简单,maven依赖如下: <dependency> <groupId>org.springframewor ...

  8. Linux安装部署FTP服务器

    Linux安装部署FTP服务器   本文章会将安装FTP服务器的步骤以及一些遇到的问题来记录下 因为项目中要与第三方对接数据,需要用到FTP服务器以提供他们每天上传数据,因为之前在本地的VMware虚 ...

  9. kubernetes配置dashborad,web界面

    一,将kubernetes-dashboard.yaml-1.10和admin-rbac.yaml和token.sh的上传到k8s的计算机上 .如图 二,切入到这三个文件所在的目录下,执行命令:kub ...

  10. linux交叉编译Windows版本的ffmpeg

    主要参考http://www.cnblogs.com/haibindev/archive/2011/12/01/2270126.html 在我的机器上编译libfaac的时候 出现问题了 输出如下 . ...