今天班级中统计成员谁没有上传申报表这个文件的时候苦不堪言,因为数量大,每个人都有教室并且个人的文件夹,所以需要进行频繁的点击和切换,这实在是无聊乏味,于是一个基于python的文件查询小程序就破壳而出了!
首先先看效果:
然后我随机抽取其中一位看看他文件有没有申报表这个文件:
可以可以
首先说下思路:
因为是对文件进行操作,所以使用os第三方库,其次还有需要对每个文件的名称进行分词,所以使用了jieba
因为目标文件夹中细分了七大类,所以我们首先要将目标文件中的目录打印出来,然后进行下一步操作:
path = "C:/Users/1/Desktop/互联网+/" c =os.listdir(path)
使用os.listdir 我们可以获取到目标文件夹下的所有子文件夹的列表:
然后我们进行选择:
word = input("请输入你想查询的文件夹名:")
d = os.listdir(path + word)
获取子文件夹中的所有目录,也就是每个人的目录 :
然后获取每个人文件夹下的文件名称:
for i in d:#每个工坊人的文件夹
contents = os.listdir(path + word + "/"+ i)#每个人的两个文件
并进行分词操作,因为需要对文件名进行匹配,如果不符合自己设定的关键词,则会进行不符操作:
content = jieba.lcut(y)#将每个文件名进行分词
不符操作:
if "申报表" not in content:
count += 1
if counts-count == 0:
print(i)
这是自己创建的一个社区,平时可以在里面进行学习打卡、交流,不定时会进行资料分享:
知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 (zsxq.com)
在这里需要提一点的是,因为每个人的文件夹中有两个或者多个文件,所以需要在分词前,对文件夹总数进行计数,然后如果不匹配的话给不符合的文件计数,再用总数减去不符合文件夹的数量,如果等于零的话,说明这个成员的已经上传了,如果不等于零,说明他没有上传;在这里可以根据自己的需求设定值,并进行计算。
OK,接下来就是源码:
import jieba
import os
path = "C:/Users/1/Desktop/互联网+/"
c =os.listdir(path)
word = input("请输入你想查询的文件夹名:")
d = os.listdir(path + word)
print(d)
for i in d:#每个工坊人的文件夹
contents = os.listdir(path + word + "/"+ i)#每个人的两个文件
counts = 0
count = 0
for y in contents:
counts += 1#记录每个人的文件数
content = jieba.lcut(y)#将每个文件名进行分词
if "申报表" not in content:
count += 1
if counts-count == 0:
print(i)



