我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python如何批量操作Excel文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python如何批量操作Excel文件

小编给大家分享一下Python如何批量操作Excel文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

批量操作

OS模块介绍

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

OS模块基本操作

获取当前工作路径

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

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

import osos.getcwd()

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

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

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

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

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

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

Python如何批量操作Excel文件

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

import osos.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')

Python如何批量操作Excel文件

删除一个文件夹

删除文件夹与创建文件夹是相对应的,当然了,我们也可以选择手动删除一个文件夹,也可以利用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个文件夹:

Python如何批量操作Excel文件

批量重命名文件

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

Python如何批量操作Excel文件

具体实现代码如下:

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")

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

Python如何批量操作Excel文件

其他批量操作

批量合并多个文件

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

Python如何批量操作Excel文件

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

import osimport pandas as pd#获取指定文件下所有文件名name_list = os.listdir('D:/Data-Science/share/data/sale_data')#创建一个相同结构的空DataFramedf_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_vdf_o

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

Python如何批量操作Excel文件

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

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

还是上面的数据集,假设我们现在拿到了一份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')

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

Python如何批量操作Excel文件

看完了这篇文章,相信你对“Python如何批量操作Excel文件”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python如何批量操作Excel文件

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

下载Word文档

猜你喜欢

Python如何批量操作Excel文件

小编给大家分享一下Python如何批量操作Excel文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!批量操作OS模块介绍OS的全称是Operation System,指操作系统。在Python里面OS模块中主要提供了与操
2023-06-25

Excel的round函数如何批量操作

这篇文章主要介绍“Excel的round函数如何批量操作”,在日常操作中,相信很多人在Excel的round函数如何批量操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Excel的round函数如何批量操作
2023-07-04

python文件操作3--批量修改文件后

1、引言需要把.dat 格式 转化成 .txt格式2、实现##python批量更换后缀名import os# 列出当前目录下所有的文件files = os.listdir('.')#print('files',files)for filen
2023-01-31

Python操作Excel之xlsx文件

前言 之前处理excel的读写时用的是xlrd/xlwt,但是这两个库有个缺点就是只对xls的格式处理的比较好,对以xlsx结尾的格式就不行了。由于现在大家使用的都是最新版本的office,excel的格式都是xlsx,因此此时再继续用xl
2022-06-04

报表如何批量导出成 excel 文件

需求说明报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出成 excel 文件,下面通过几个示例介绍
2023-06-02

如何利用JAVA操作EXCEL文件

这篇文章给大家分享的是有关如何利用JAVA操作EXCEL文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。利用JAVA操作EXCEL文件使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要
2023-06-03

python如何批量翻译excel表格中的英文

这篇文章主要介绍“python如何批量翻译excel表格中的英文”,在日常操作中,相信很多人在python如何批量翻译excel表格中的英文问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python如何批量翻
2023-07-05

如何在Android应用中操作Excel文件

如何在Android应用中操作Excel文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android中操作Excel文件导出报表时主要采用开源库jxl,最早用在java上,
2023-05-31

C# 中如何使用Delphi控件操作Excel文件

这篇文章给大家介绍C# 中如何使用Delphi控件操作Excel文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C# 操作Excel之Delphi控件方法在Form中分别放入ExcelApplication,Exce
2023-06-17

Python如何操作XML文件

这篇文章主要介绍“Python如何操作XML文件”,在日常操作中,相信很多人在Python如何操作XML文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何操作XML文件”的疑惑有所帮助!接下来
2023-06-30

python如何根据文件名批量搜索文件

这篇文章将为大家详细讲解有关python如何根据文件名批量搜索文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。需求场景,五百个文件里面,选取50个指定文件,放入新的文件夹里。1、准备工作1
2023-06-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录