广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python批量操作Excel文件详解
  • 675
分享到

Python批量操作Excel文件详解

2024-04-02 19:04:59 675人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录批量操作OS模块介绍OS模块基本操作获取当前工作路径获取一个文件夹下的所有文件名对文件名进行重命名创建一个文件夹删除一个文件夹删除一个文件利用OS模块进行批量操作批量读取一个文件

批量操作

OS模块介绍

OS的全称是Operation System,指操作系统。在python里面OS模块中主要提供了与操作系统即电脑系统之间进行交互的一些功能。我们很多的自动化操作都会依赖于该模块的功能。

OS模块基本操作

获取当前工作路径

我们在最开始Python基础知识那一章节给讲了如何安装Anaconda以及如何利用Jupyter notebook写代码。可是你们知道你们写在Jupyter notebook里面的代码存储在电脑的哪里吗?

是不是很多同学不知道?想要知道也很简单,只需要在Jupyter notebook中输入如下代码,然后运行:


import os
os.getcwd()

运行上面代码会得到如下结果:

'C:\\Users\\zhangjunhong\\Python库\\Python报表自动化'

上面这个文件路径就是此时notebook代码文件所在的路径,你的代码存储在哪个文件路径下,运行就会得到对应结果。

获取一个文件夹下的所有文件名

我们经常会将电脑本地的文件导入到Python中来处理,在导入之前需要知道文件的存储路径以及文件名。如果只有一两个文件的话还好,我们直接把文件名和文件路径手动输入即可,但是有的时候需要导入的文件会有很多。这个时候手动输入效率就会比较低,就需要借助代码来提高效率。

如下文件夹中有四个excel文件:

gYsY6O.jpg

我们可以使用os.listdir(path)来获取path路径下所有的文件名。具体实现代码如下:


import os
os.listdir('D:/Data-Science/share/data/test')

运行上面代码会得到如下结果:

['3月绩效-张明明.xlsx', '李旦3月绩效.xlsx', '王玥月-3月绩效.xlsx', '陈凯3月份绩效.xlsx']

对文件名进行重命名

对文件进行重命名也是比较高频的一种需求,我们可以利用os.rename('old_name','new_name')来对文件进行重命名。old_name就是旧文件名,new_name就是新文件名。

我们先在test文件夹下面新建一个名为test_old的文件,然后再利用如下代码,就可以把test_old文件名改成test_new:


os.rename('D:/Data-Science/share/data/test/test_old.xlsx'
          ,'D:/Data-Science/share/data/test/test_new.xlsx')

运行上面代码以后,再到test文件夹下面,就可以看到test_old文件已经不存在了,只有test_new。

创建一个文件夹

当我们想要在指定路径下创建一个新的文件夹时,可以选择手动新建文件夹,也可以利用os.mkdir(path)进行新建,只需要指明具体的路径(path)即可。

如下所示,当我们运行下面代码,就表示在D:/Data-Science/share/data路径下新建一个名为test11的文件夹:


os.mkdir('D:/Data-Science/share/data/test11')

gYscjS.jpg

删除一个文件夹

删除文件夹与创建文件夹是相对应的,当然了,我们也可以选择手动删除一个文件夹,也可以利用os.removedirs(path)进行删除,指明要删除的路径(path)。

如下所示,当我们运行如下代码,就表示把刚刚创建的test11文件夹删除了:


os.removedirs('D:/Data-Science/share/data/test11')

删除一个文件

删除文件时删除一个具体的文件,而删除文件夹是将一整个文件夹,包含文件夹中的所有文件进行删除。删除文件利用的是os.remove(path),指明文件所在的路径(path)。

如下所示,当我们运行如下代码,就表示将test文件夹中test_new文件进行删除:


os.remove('D:/Data-Science/share/data/test/test_new.xlsx')

利用OS模块进行批量操作

批量读取一个文件下的多个文件

有的时候一个文件夹下面会包含多个相类似的文件,比如一个部门不同人的绩效文件,我们需要把这些文件批量读取到Python里面中,然后进行处理。

我们在前面学过,如何读取一个文件,可以用load_work,也可以用read_excel,不管用哪种方式,都只需要指明要读取文件的路径即可。

那如何批量读取呢?先获取该文件下的所有文件名,然后再遍历读取每一个文件。具体实现代码如下所示:


import pandas as pd

#获取文件夹下的所有文件名
name_list = os.listdir('D:/Data-Science/share/data/test')

#for循环遍历读取
for i in name_list:
    df = pd.read_excel(r'D:/Data-Science/share/data/test/' + i)
    print('{}读取完成!'.fORMat(i))

如果要对读取进来的文件进行数据操作的时候,把具体的操作实现代码放置在读取代码之后即可。比如我们要对每一个读取进来的文件进行删除重复值处理,实现代码如下:


import pandas as pd

#获取文件夹下的所有文件名
name_list = os.listdir('D:/Data-Science/share/data/test')

#for循环遍历读取
for i in name_list:
    df = pd.read_excel(r'D:/Data-Science/share/data/test/' + i)
    df = df.drop_duplicates() #删除重复值处理
    print('{}读取完成!'.format(i))

批量创建文件夹

有的时候我们需要根据特定的主题来创建特定的文件夹,比如需要根据月份创建12个文件夹。我们前面学过如何创建单个文件夹,要批量创建多个文件夹,只需要遍历执行单个文件夹的语句即可。具体实现代码如下:


month_num = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']

for i in month_num:
    os.mkdir('D:/Data-Science/share/data/' + i)
    print('{}创建完成!'.format(i))

运行上面代码以后就会在该文件路径下新建了12个文件夹:

gYyJ5n.jpg

批量重命名文件

有的时候我们有好多相同主题的文件,但是这些文件的文件名比较混乱,比如下面这些文件,是各个员工的3月绩效情况,但是命名格式都不太一样,我们要将其统一成名字+3月绩效这样的格式。要达到这种效果,可以通过前面学到的对文件进行重命名操作来实现,前面只讲了对单一文件的操作,那如何同时对多个文件进行批量操作呢?

gYsJ1K.jpg

具体实现代码如下:


import os

#获取指定文件下所有文件名
old_name = os.listdir('D:/Data-Science/share/data/test')

name = ["张明明","李旦","王玥月","陈凯"]

#遍历每一个姓名
for n in name:
    #遍历每一个旧文件名
    for o in old_name:
        #判断旧文件名中是否包含特定的姓名
        #如果包含就进行重命名
        if n in o:
            os.rename('D:/Data-Science/share/data/test/' + o, 'D:/Data-Science/share/data/test/' + n +"3月绩效.xlsx")

运行上面代码以后可以看到文件下的原文件名全部已被重命名完成。

gYsGp6.jpg

其他批量操作

批量合并多个文件

如下所示,该文件夹下面有1-6月的分月销售日报,已知这些日报的结构是相同的,只有日期和销量两列,现在我们想要把这些不同月份的日报合并成一份。

gYfpoF.jpg

将分月销售日报合并成一份文件的具体实现代码如下:


import os
import pandas as pd

#获取指定文件下所有文件名
name_list = os.listdir('D:/Data-Science/share/data/sale_data')

#创建一个相同结构的空DataFrame
df_o = pd.DataFrame({'日期':[],'销量':[]})

#遍历读取每一个文件
for i in name_list:
    df = pd.read_excel(r'D:/Data-Science/share/data/sale_data/' + i)
    #进行纵向拼接
    df_v = pd.concat([df_o,df])
    #把拼接后的结果赋值给df_o
    df_o = df_v
df_o   

运行上面代码就会得到合并后的文件df_o,如下所示:

gYhUnx.jpg

将一份文件按照指定列拆分成多个文件

上面讲了如何批量合并多个文件,我们也有合并多个文件逆需求,即按照指定列将一个文件拆分成多个文件。

还是上面的数据集,假设我们现在拿到了一份1-6月份的文件,这份文件除了日期和销量两列以外,还多了一列月份,现在我们需要做的就是根据月份这一列将这一份文件拆分成多个文件,每个月份单独存储为一个文件。

具体实现代码如下:


#生成一列新的月份列
df_o['月份'] = df_o['日期'].apply(lambda x:x.month)

#遍历每一个月份值
for m in df_o['月份'].unique():
    #将特定月份值的数据筛选出来
    df_month = df_o[df_o['月份'] == m]
    #将筛选出来的数据进行保存
    df_month.to_csv(r'D:/Data-Science/share/data/split_data/' + str(m) + '月销售日报_拆分后.csv')

运行上面代码我们就可以在目标路径下看到拆分后的多个文件:

gY4zeP.jpg

到此这篇关于Python批量操作Excel文件详解 的文章就介绍到这了,更多相关Python 操作Excel文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python批量操作Excel文件详解

本文链接: https://www.lsjlt.com/news/157959.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python批量操作Excel文件详解
    目录批量操作OS模块介绍OS模块基本操作获取当前工作路径获取一个文件夹下的所有文件名对文件名进行重命名创建一个文件夹删除一个文件夹删除一个文件利用OS模块进行批量操作批量读取一个文件...
    99+
    2022-11-12
  • Python如何批量操作Excel文件
    小编给大家分享一下Python如何批量操作Excel文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!批量操作OS模块介绍OS的全称是Operation System,指操作系统。在Python里面OS模块中主要提供了与操...
    99+
    2023-06-25
  • Python文件简单操作及openpyxl操作excel文件详解
    目录一、文件的操作流程1、打开文件2、文件操作——读、写、修改3、关闭文件二、openpyxl操作excel文件1、导入模块2、创建文件3、打开已有excel...
    99+
    2022-11-11
  • Shell实现批量操作文件的方法详解
    目录1.文件夹结构2.查找某文件夹下指定文件所在的路径3.批量删除某个文件夹下的指定文件4.批量重命名某文件夹下指定的文件名5.批量将某文件夹下指定文件移至上级目录1.文件夹结构 准备如下文件夹 如E:\Code\She...
    99+
    2022-09-29
  • Python自动操作Excel文件的方法详解
    目录工具读取Excel文件内容写入Excel文件内容Excel文件样式调整设置表头的位置设置单元格的宽高总结工具 python3.7 Pycharm Excel xlwt&x...
    99+
    2022-11-11
  • python文件操作3--批量修改文件后
    1、引言 需要把.dat 格式 转化成 .txt格式 2、实现 ##python批量更换后缀名 import os # 列出当前目录下所有的文件 files = os.listdir('.') #print('files',...
    99+
    2023-01-31
    文件 批量 操作
  • python文件操作详解
    文件操作是编程中必不可少的,配置文件,数据存储都是对文件操作;按文件操作与格式主要内容如下图: 文件基本操作为打开,读取,写入,关闭,我们按这个过程来详解讲解。 1.一个例子搞定打开,读取与关闭: 准备工作: 1>新建文件:E:\w...
    99+
    2023-01-31
    详解 操作 文件
  • Python操作Excel之xlsx文件
    前言 之前处理excel的读写时用的是xlrd/xlwt,但是这两个库有个缺点就是只对xls的格式处理的比较好,对以xlsx结尾的格式就不行了。由于现在大家使用的都是最新版本的office,excel的格式...
    99+
    2022-06-04
    操作 文件 Python
  • 详解Python操作Excel之openpyxl
    目录Python操作Excel之openpyxl前提创建读取总结Python操作Excel之openpyxl openpyxl是一个Python库,用来读写Excel2010 xls...
    99+
    2022-11-12
  • Python批量修改文件名的方式详解
    目录批量修改文件名(保留后缀) 批量修改文件名(全改) 读取文件下的所有文件名 总结批量修改文件名(保留后缀) 这种方法,保留了文件原本的后缀。这里主要演示的是对图片名的修改。 ...
    99+
    2022-11-12
  • Python批量修改文件名实例操作分享
    此处以修改图片文件名为例,将图片复制到新的目录中再修改名称~ 原始文件名如下: 修改后的效果如下: 代码: 实现将one文件夹中的每一个图片复制到two文件夹并修改图片名为按照...
    99+
    2022-11-10
  • 使用Python批量压缩tif文件操作步骤
    1.前言 我在进行DEM数据的裁剪时,发现各个省的数据量非常大,比如说四川省的30m的DEM数据的大小为2G。考虑到有限的电脑磁盘空间,我对Tif文件采用了LZW压缩。 2.流程 ...
    99+
    2022-11-12
  • Java操作Excel文件解析与读写方法详解
    目录一、概述二、Apache POI三、XSSF解析Excel文件1.Workbook(Excel文件)2.Sheet(工作簿)3.Row(数据行)4.Cell(单元格)四、超大Ex...
    99+
    2022-11-13
    Java Excel文件解析 Java Excel文件读写
  • 详解Python中的文件操作
    1.能调用方法的一定是对象,比如数值、字符串、列表、元组、字典,甚至文件也是对象,Python中一切皆为对象。 str1 = 'hello' str2 = 'world' str3 = ' '.j...
    99+
    2022-06-04
    详解 操作 文件
  • Python实现读取大量Excel文件并跨文件批量计算平均值
    本文介绍基于Python语言,实现对多个不同Excel文件进行数据读取与平均值计算的方法。 首先,让我们来看一下具体需求:目前有一个文件夹,其中存放了大量Excel文件;文件名称是每...
    99+
    2023-02-02
    Python读取Excel Python计算平均值 Python Excel 平均值
  • Python实现将Excel内容批量导出为PDF文件
    目录序言实现代码序言 上一篇咱们实现了多个表格数据合并到一个表格,本次咱们来学习如何将表格数据分开导出为PDF文件。 部分数据 然后需要安装一下这个软件 wkhtmltopdf 不...
    99+
    2022-11-10
  • Python办公自动化Word转Excel文件批量处理
    目录前言首先使用Python将Word文件导入row和cell解析所需内容内层解析循环前言 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于...
    99+
    2022-11-11
  • python如何批量读取一个文件夹里的所以excel文件
    绪论 在数据分析工作中,尝尝需要处理多个不同月的excel文件,但无奈与excel文件的局限性,不能同时处理多个月的excel数据,所以python的批量读取excel文件就显得十分重要,下面我将展示如何用python将每个月度的excel...
    99+
    2023-09-03
    excel python numpy pandas 数据分析
  • Python读取大量Excel文件并跨文件批量计算平均值的方法
    本文介绍基于Python语言,实现对多个不同Excel文件进行数据读取与平均值计算的方法~ 编程网推荐学习python书籍   首先,让我们来看一下具体需求:目...
    99+
    2023-02-02
    Python读取大量Excel文件 python批量读取Excel文件 python读取Excel文件
  • Python文件操作之二进制文件详解
    目录1.二进制读取模式rb读取模式将读取到的内容写入到文件总结1.二进制读取模式 rt 读取文本文件(默认值) rb 读取二进制文件 file_name = ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作