这个问题其实涉及的东西比较多,我们一个个说
首先,如何遍历文件夹中的文件名,比较方便的方法是使用os模块中的walk方法,如下:
import os
PATH="E:/BaiduNetdiskDownload" # PATH为你的文件所在的目录
for path,dir_list,file_list in os.walk(PATH): #这一句就是遍历PATH文件夹下的所有目录
# file_list 为根目录中文件名的列表,path为根目录路径
# 这里写你对文件的处理代码,可以是一下这样
for file in file_list:
#这里写对文件名的处理
break # 如果只处理根目录中的文件,使用break目录遍历的for循环
其次,有了文件名列表,如何提取中其中的序号,方便后续做处理:
这里其实有个问题,你的描述中序号都是四位数,如果序号在最前面,但是从1开始的如何处理:
如果都是四位数比较好处理,如果文件名是file ,那么file[:4]就是序号,当然这个序号是字符串格式的,你可以int(file[:4]),也可以用字符串数字的方法
如果你的序号是从1开始,那可能借助正则比较方便一点,代码大概是这样的:
import re
# file为文件名,serial为从文件名中提取出来的序号,当然也是字符串格式的
serial = re.match(r'[0-9]*', file).group()
最后,实际中可能出现的问题很多,处理时其实要考虑的问题很多,如果不能提前考虑到,那调试的时候会很痛苦,尤其是很多初学者不使用vscode或者pycharm这种专门的编码工具,使用python自带的idle,运行过程中参数值的变化的跟踪是很繁琐的~~~
比如,重复的序号有没有可能在其他的位置,比如你的例子中1000重复了,有没有可能,他本来在999的位置,或者2000的位置。
同样的道理,看起来遗漏的文件,是否只是因为错误的命名,比如你的例子里"1000三都的.mp3"这个文件有没有可能序号是1002。
以上,抛砖引玉,基本上我想到的东西都说了下,如果说的有问题,欢迎来讨论~~~