python(以字符串b开头或结尾)

案例


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

核心思路


(1)str.endswith 或者 str.startswith
(2)os.chmod(rp, os.stat(rp).st_mode | stat.S_IXUSR) 为文件添加可执行权限

核心代码


import os, stat

path = os.getcwd()  # 当前文件所在目录
parent_path = os.path.dirname(path)  # 当前文件所在目录的上级目录
file_path = os.path.join(path, 'fileDemo')
print(path, parent_path, file_path, sep="\n====\n")

filelist = os.listdir(file_path)
print(filelist)

s = 'g.sh'
flag = s.endswith(('sh', 'py'))  # endWith函数的参数中,不仅支持单一字符串,也支持元组类型(只能是元组,不能为列表),且结果满足其一,结果即为True.
print(flag)  # True


res = [name for name in filelist if name.endswith(('sh', 'py'))]
print(res)  # ['a.sh', 'b.py', 'e.py', 'g.sh']


res_abs = list(map(lambda x: os.path.join(file_path, x), res))
print(res_abs)

for rp in res_abs:
    mode = os.stat(rp).st_mode
    o_mode = oct(mode)
    os.chmod(rp, os.stat(rp).st_mode | stat.S_IXUSR)  # 为文件添加可执行权限

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容