您当前的位置:首页 > 计算机 > 编程开发 > Python

Python批量整理文件名小案例

时间:12-26来源:作者:董付国点击数:

问题背景:用了半年时间录制了200集Python视频,内容结合了我系列教材《Python程序设计基础》、《Python程序设计(第2版)》和《Python可以这样学》(作者:董付国,清华大学出版社出版)三本书的大部分内容。现在视频录制差不多告一段落了,想整理一个清单。

在资源管理器里查看,视频文件名的格式如下图所示:

现在想整理成下图所示的格式:

根据以上的需求,写了下面的代码用来整理这些文件名:

import os

import re

path = r'D:\Python教学视频'

avis = [fn[:-4]\

        for fn in os.listdir(path)\

        if fn.endswith('.avi')]

def sort(item):

    '''首先按章节名字排序

然后按序号从小到大排序'''

    index = item.index(':')

    item = item[:index]

    # 查找文件名中的第一组数字,序号

    digits = re.findall(r'\d+', item)[0]

    # 返回值作为sort()方法的排序规则

    return (item[:item.index(digits)],\

            int(digits))

# 按指定规则进行排序

avis.sort(key=sort)

chapters = []

# 调整输出格式

for item in avis:

    # 文件名中第一组数字之前的是“章”的名字

    digits = re.findall(r'\d+', item)[0]

    index = item.index(digits)

    chapter = item[:index]

    if chapter not in chapters:

        chapters.append(chapter)

        print(chapter)

    # 文件名中冒号后面是“节”的名字

    print('\t', item[item.index(':')+1:])

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门