分享

Python查找处理文件常用代码集锦,值得收藏

 lllsztz 2019-11-26

在日常工作中,我们经常会遇到一些查找、存储文件的问题,比如合并文件夹内的多个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”文件。

Python查找处理文件常用代码集锦,值得收藏

初始文件

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、运行代码完成,此时汇总文件内已经合并了其他两个文件的数据。

Python查找处理文件常用代码集锦,值得收藏

程序运行后文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多