查询 重复 和 遗漏
比如E盘 sixmp3toxx文件夹内,期待格式: 序列递增***.mp31000三国.mp3,
1001三都的.mp3
1002大小的是.mp3
1003测试.mp3
但是,有可能错误编辑,导致文件名是:
1000三国.mp3,
1000三都的.mp3
1003测试.mp3
结果是: 1000 这个出现了重复,1002 开始命名的 文件遗漏, 都需要查询出来的思路。 你的 疑问是啥
以及发发你的代码 比较快速的方法,python 导出文件名 到 txt,每个名一行,全部复制到 excel,左边前 4列 和 插入列 1---N,进行 减法,快速查询 为0的重复项,以及不为0的 项目。 这个问题其实涉及的东西比较多,我们一个个说
首先,如何遍历文件夹中的文件名,比较方便的方法是使用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'*', file).group()
最后,实际中可能出现的问题很多,处理时其实要考虑的问题很多,如果不能提前考虑到,那调试的时候会很痛苦,尤其是很多初学者不使用vscode或者pycharm这种专门的编码工具,使用python自带的idle,运行过程中参数值的变化的跟踪是很繁琐的~~~
比如,重复的序号有没有可能在其他的位置,比如你的例子中1000重复了,有没有可能,他本来在999的位置,或者2000的位置。
同样的道理,看起来遗漏的文件,是否只是因为错误的命名,比如你的例子里"1000三都的.mp3"这个文件有没有可能序号是1002。
以上,抛砖引玉,基本上我想到的东西都说了下,如果说的有问题,欢迎来讨论~~~
封装代码,执行任务完成特定功能:实现函数
复用代码;隐藏细节,提高维护性,提高可读性 形参,实参;传递: 关键字实参 和 位置实参;
函数体内的修改,不会影响 实参的值------------错。
P89: 可变对象,还是不可变对象。 视频:100秒分清python中的可变对象和不可变对象
学习编程王同学 import datetime
today = datetime.datetime.now()
页:
[1]