如何判断字符串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加上执行权限