如何判断字符串a是否以字符串b开关或结尾?

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

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

代码:

import os
import stat

# 列出当前目录下的文件
li = os.listdir('.')

ret = []

#遍历找出符合条件的.py和.sh文件
for x in li:
    if x.endswith(('.py','.sh')):
        ret.append(x)

# 上面也可以写成 ret = [ name for name in os.listdir('.') if name.endswich(('.sh','.py'))] 更简单

# 给符合条件的文件加上执行权限

for i in ret:
    mode = os.stat(i).st_mode  # 当前的权限,若想变成我们熟悉的八进制,可以用oct(mode)来转
    os.chmod(i,mode|stat.S_IXUSR)  # stat.S_IXUSR 为给USER加上执行权限
posted @ 2020-07-11 00:10  Richardo-M-Lu  阅读(136)  评论(0编辑  收藏  举报