Python判断字符串是否以某字符串开头或结尾
1、如何判断字符串a是否以字符串b开头或结尾?(相似问题,如判断某一个网络地址是否以http开头或者ftp开头。)示例案例:某文件系统目录下有一系列文件:quicksort.cgraph.pyheap.javainstall.shstack.cpp... ...编写程序给其中所有.sh文件和.py文件加上用户可执行权限。解决方案:使用字符串的str.startswith()和...
·
1、如何判断字符串a是否以字符串b开头或结尾?
(相似问题,如判断某一个网络地址是否以http开头或者ftp开头。)
示例案例:
某文件系统目录下有一系列文件:
quicksort.c
graph.py
heap.java
install.sh
stack.cpp
... ...
编写程序给其中所有.sh文件和.py文件加上用户可执行权限。
解决方案:
使用字符串的str.startswith()和str.endswith()方法。
注意:多个匹配时参数使用元组。
2、代码演示
# 导入系统调用相关的os模块,文件状态相关的stat模块
import os, stat
# 读入当前路径下的所有的文件名
files = os.listdir('.')
print(files)
# 依次判断列表中每一个项是否以.sh或.py结尾
'''
s.endswith方法介绍:
S.endswith(suffix[, start[, end]]) -> bool
str.endswith()接受元组作为参数,满足其中之一返回结果就为真
'''
s = 'g.sh'
print(s.endswith(('.sh', '.py')))
# 使用列表解析把中的.sh和.py文件过滤出来
l = [name for name in os.listdir('.') if name.endswith(('.sh', '.py'))]
print(l)
# 修改其中一个文件权限
# (1)首先读入文件权限,后面跟一个文件路径,返回值中st_mode和权限相关
print(os.stat('03.set_test.py'))
# (2)将st_mode的值转换成八进制数,后三位数就是文件权限
st_mode = os.stat('03.set_test.py').st_mode
print(oct(st_mode))
# (3)得到用户可执行权限验码,然后跟st_mode或操作得到文件最终权限
print(stat.S_IXUSR)
# (4)改变文件权限,第一个参数文件名,第二个参数文件权限
os.chmod('03.set_test.py', st_mode | stat.S_IXUSR)
# 依次迭代每一个文件都进行修改权限操作
for x in l:
st_mode = os.stat('%s' % x).st_mode
os.chmod('%s' % x, oct(st_mode) | stat.S_IXUSR)
# 对比一个文件修改前和后的权限变化
-rw-r--r-- 1 allard staff 202 Apr 25 19:33 03.set_test.py
-rwxr--r-- 1 allard staff 202 Apr 25 19:33 03.set_test.py
更多推荐



所有评论(0)