用Python实现扫描子文件导入Excel功能
在工作中,我经常遇到一些纯人工活,比如把文件名登录到Excel里。但遇到100+以上的文件呢。。。emmmmmm一开始我是手动复制粘贴,然后就想用python写,这里记录一下编程的思路
Step1 思路确认
- 需要遍历文件夹下所有文件
- 区分文件夹和文件
- 把文件名写入excel
Step2 找库
根据Step1这个思路犹如把大象关进冰箱一样
不过具体实现还有很多的问题,例如遍历文件夹的时候是否要写入excel,文件名是否需要格式后缀,如果不需要该怎么办等等问题
经过百度大致确认了以下几个库
- import os #这个是用来寻找文件路径和读取文件名的
- import xlsxwriter #这个是用来操作excel的,可能你听过xlrd,不过我百度下来只有这个可以写url,如果有不对欢迎大家指出
- import tkinter #这个是写界面的,因为这个软件准备给同事用所以稍微考虑一下了用户体验
Step3 写函数
- 遍历文件夹下子文件的函数
def get_folder(path): #这个函数是来分类文件夹和文件的
get_url = os.listdir(path)
for i in get_url:
sub_dir = os.path.join(path,i) # 把第一步获取的文件加入路径
if os.path.isdir(sub_dir): #如果当前仍然是文件夹,递归调用
print("正在检查%s"%sub_dir)
folder_name.append(sub_dir) #用folder_name来记录所有文件夹的路径
name.append(i)
get_folder(sub_dir)
用了一个递归调用,如果碰到文件夹就会一直检查,直到检查到文件。
然后用一个变量储存所有的文件夹的地址路径
- 写入excel的函数
def out_file(sheet,path,n,file_name): #这个函数是来写入文件名的
global index
get_name = os.listdir(path) #列出文件路径下的所有文件
print("正在写入"+path+"下的文件名称")
sheet.write_string(n,1,