零基础小白必看:python基本操作-文件、目录及路径( 四 )
- split :分割文件名和文件夹 , 即把 path 以最后一个斜线"/"为分隔符 , 切割为 head 和 tail, 以 (head, tail) 元组的形势返回 。
>>> os.path.split("test/test-1")# 分割目录('test', 'test-1')>>> os.path.split("test/test-1/")# 以/结尾的目录分割('test/test-1', '')>>> os.path.split("test/test-1/test-1.txt")# 分割文件('test/test-1', 'test-1.txt')复制代码
- splitext :分割路径名和文件扩展名 , 把path 以最后一个扩展名分隔符“.”分割 , 切割为 head 和 tail, 以 (head, tail) 元组的形势返回 。 注意与 split 的区别是分隔符的不同 。
>>> os.path.splitext("test/test-1")('test/test-1', '')>>> os.path.splitext("test/test-1/") ('test/test-1/', '')>>> os.path.splitext("test/test-1/test-1.txt")# 区分文件名及扩展名('test/test-1/test-1', '.txt')>>> os.path.splitext("test/test-1/test-1.txt.tmp") # 以最后的"."为分割点('test/test-1/test-1.txt', '.tmp')复制代码
5 示例应用下面以一些平时使用到的场景 , 对前面的操作函数进行综合使用 。5.1 批量修改文件名
def batch_rename(dir_path):itemlist = os.listdir(dir_path)# 获取目录文件列表for item in itemlist:# 连接成完整路径item_path = os.path.join(dir_path, item)print(item_path)# 修改文件名if os.path.isfile(item_path):splitext = os.path.splitext(item_path)os.rename(item_path, splitext[0] + "-副本" + splitext[1])复制代码
文章插图
5.2 遍历目录及子目录下所有指定扩展名的文件
def walk_ext_file(dir_path,ext):# 遍历for root, dirs, files in os.walk(dir_path):# 获取文件名称及路径for file in files:file_path = os.path.join(root, file)file_item = os.path.splitext(file_path)# 输出指定扩展名的文件路径if ext == file_item[1]:print(file_path)复制代码
文章插图
5.3 按修改时间排序指定目录下的文件
def sort_file(dir_path):# 排序前itemlist = os.listdir(dir_path)print(itemlist)# 正向排序itemlist.sort(key=lambda filename: os.path.getmtime(os.path.join(dir_path, filename)))print(itemlist)# 反向排序itemlist.sort(key=lambda filename: os.path.getmtime(os.path.join(dir_path, filename)), reverse=True)print(itemlist)# 获取最新修改的文件print(itemlist[0])复制代码
文章插图
6 总结在需要对文件或者目录进行操作时 , python 是一个简单快速选择 。 本文通过 python 的标准内置 os 模块及子模块 os.path 的常用方法进行介绍 , 最后结合使用场景进行综合使用 。 相信已经满足大家对文件及目录操作的大部分需求 。
【零基础小白必看:python基本操作-文件、目录及路径】最后多说一句 , 小编是一名python开发工程师 , 这里有我自己整理了一套最新的python系统学习教程 , 包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等 。 想要这些资料的可以关注小编 , 并私信“01”领取 。
- 视频小白们的外挂装备:百视悦R5监视器+T2提词器套装上手
- 市科委与联影集团联合首设“探索者计划”,共推基础及应用基础研究
- 从事Java开发时发现基础差,是否应该选择辞职自学一段时间
- 大力发展新型基础设施建设“数字浙江”再添新引擎
- 「新书推荐」5G安全:5G生态的重要组成部分和5G发展的关键基础条件
- 新人必看,一个接触币圈2年的人花钱买来的教训
- 微软Surface Pro 8基础版规格或升级 酷睿i3+8GB运存
- 昆明2500万元奖补新能源汽车充电基础设施建设
- 实验|国家重大科技基础设施项目!中国锦屏地下实验室二期开工建设
- 视频小白的第一次相机稳定器使用:飞宇AK2000C体验