在日常工作中,我们经常会遇到一些查找、存储文件的问题,比如合并文件夹内的多个excel文件等。这就涉及到文件的查找处理等操作,Python提供的OS库就派上了用场。本文整理了一些常用的文件处理代码,基本满足日常需要,适合收藏。 1、得到指定文件路径:os.path.dirname(带路径文件名)查找处理文件要调用os库,和openpyxl一样,先用import 导入。 import osfile = r'e:\python\删除最小值.xlsx'pwd = os.path.dirname(file)print(pwd) 运行结果为:e:\python也可从分离文件名后的列表中提取:os.path.split(带路径文件名)[0] 2、得到当前文件名:os.path.dasename(带路径文件名)import osfile = r'e:\python\删除最小值.xlsx'pwdn = os.path.basename(file)print(pwdn) 运行结果为:删除最小值.xlsx也可从分离文件名后的列表中提取:os.path.split(带路径文件名)[1] 3、判断文件路径是否存在:os.path.exists(带路径文件名)import osfile = r'e:\python\删除最小值.xlsx'pwdbool = os.path.exists(file)print(pwdbool) 运行结果为:true若给定的路径文件不存在,则返回false 4、获得指定文件夹下所有文件:print(os.listdir(文件夹路径))import ospwdns = os.listdir(r'e:\python')print(pwdns[1]) 运行结果:8.py 为'e:\python'文件夹下第2个文件(或文件夹)名。 5、获得文件后缀:os.path.splitext(文件名)import ospdn= os.path.splitext('试验.py')print(pdn[1]) 运行结果:.py,若最后一句改为print(pdn[0]),则得到文件名。 我们模拟一个案例,体验一下在下面的文件夹“e:\python\汇总”里,有2个xlsx文件和一个txt文件,要求先判断当前文件夹内是否存在“汇总.xlsx”文件,若不存在则新建一个,若存在则直接打开使用,要求将其他.xlsx文件的第1个表单数据,汇总至“汇总.xlsx”文件。 初始文件 1、导入os库和openpyxl库,给定当前路径为模块参数 import osimport openpyxlif __name__ == '__main__': jion(r'e:\python\汇总') 2、在jion模块内写代码,先判断是否存在汇总.excle文件,若无则创建 def jion(f1): f2 = f1 + '\\' + '汇总.xlsx' bl = os.path.exists(f2) if bl is False: wb = openpyxl.Workbook() ws = wb.active ws.title = '汇总' ws1 = wb.create_sheet('a1') wb.save(f2) wb = openpyxl.load_workbook(f2) ws = wb.active 3、遍历指定文件夹,将目标.xlsx文件放入列表k备用 pns = os.listdir(f1)k = []for i in range(len(pns)): hz = os.path.splitext(pns[i])[1] qz = os.path.splitext(pns[i])[0] if hz == '.xlsx' and qz != '汇总': k.append(pns[i]) 5、逐个打开目标文件,将第一个表单内的数据复制粘贴在汇总表内汇总表单内 for i in range(len(k)): wb1 = openpyxl.load_workbook(f1 + '\\' + k[i]) ws1 = wb1._sheets[0] for jj in range(2, ws1.max_row+1): ks = ws.max_row for j in range(1, ws1.max_column+1): ws.cell(ks+1, j).value = ws1.cell(jj, j).valuewb.save(f2) 6、运行代码完成,此时汇总文件内已经合并了其他两个文件的数据。 程序运行后文件 |
|