一键整理文件夹下的excel表格

本文介绍两个Python脚本,用于合并多个Excel表格并一键删除文件夹内所有Excel文件。合并脚本采用从第二个文件开始逐个追加到第一个文件的高效方法,而删除脚本遍历文件夹,非文件夹则直接删除。这两个脚本提高了数据管理和清理的便捷性,尤其适用于大量数据处理场景。
摘要由CSDN通过智能技术生成

  上一篇文章中,我们开发了一套一键自动化采集大众点评评论信息的脚本。采集的评论信息以Excel格式存储在一个文件夹下。
  为了方便以后对Excel文件的管理,还有对于采集到的数据的规整,比如说,现在采集到的数据每一页评论数据保存在一个新的Excel中,每页数据有15条,看起来很不方便,正常的需求就是将所有的数据放在一张Excel表格中。

  那么,我们这篇要讲解的脚本就必须有两个功能:

1. 可以将多个Excel文件合并的脚本;
2. 可以一键删除所有Excel表格的脚本。(删除文件,也是懒得不想动的)

一、合并多个Excel表格

  合并Excel表格思路一种是:读取第一个Excel表格的内容,追加到第二个Excel表格,然后读取第二个Excel表格的数据,存入第三个Excel表格……以此类推。
  这个思路的流程是对的,不过太Low了,也就是简单实现了功能,而且对同一个Excel表格读取了两次,耗时最多,效率最慢。

  第二种思路是:从第二个Excel表格开始,读取Excel表格内容,追加到第一个Excel表格中。我们获取到文件夹下所有的文件路径,然后切片获取从第二个Excel表格文件开始的文件列表。每个Excel表格只读取一次(除了第一个Excel表格保持打开状态)。同时保持数据顺序正确,也没有多余操作。效率跟功能基本算是优解了。
  So,就确定是第二种思路了。
  (其实,我自己写好的脚本思路是,先创建一个新的Excel表格,然后逐一读取所有Excel表格,追加到新的Excel表格中。这样的好处是,合并后的Excel表格一目了然,而且每个Excel表格也是只读取一次。缺点就是创建新表格需要指定columns,采集的数据字段改变,需要手动修改代码。写博客过程中,发现还是第二种思路更简洁,没有多余操作,以后字段变化,也不用再修改源码,简单修改了下脚本,按第二种思路实现)

具体实现如下:

    def merge_excel(self, excel_path):
        """
        合并excel
        :return:
        """
        # 合并excel
        df = pd.read_excel(excel_path, header=None)
        df_merged = pd.read_excel(self.merged_excel_path, header=None)
        dd = df_merged.append(df[1:], ignore_index=True)
        dd.to_excel(self.merged_excel_path, index=False, header=None)

  excel_path就是当前读取的Excel表格文件路径,merged_excel_path是最终保存的Excel表格文件路径,第二种思路的话就是当前文件夹下的第一个Excel表格文件路径。

二、删除文件夹下所有文件

  删除文件夹下的所有文件,思路首先是获取文件夹下的所有文件路径,然后判断是否是文件夹,非文件夹的就是单个文件了,使用os.remove()函数直接删除掉文件即可。

具体实现如下:

def del_file(path):
    ls = os.listdir(path)
    for i in ls:
        c_path = os.path.join(path, i)
        print(c_path)
        if os.path.isdir(c_path):  # 如果是文件夹那么递归调用一下
            del_file(c_path)
        else:  # 如果是一个文件那么直接删除
            os.remove(c_path)
    print('文件已经清空完成')

总结。

  一键合并Excel表格脚本,一键删除文件夹下所有文件脚本,重要的核心都是对于OS库的使用,关于文件路径的识别,os库有奇效,并且还是python自带的,执行效率杠杠。

  这两个脚本实现的初心,是配合大众点评脚本,提高用户体验(也就是一个字懒)。能让电脑做的事情,坚决不手动,这是作为一枚程序搬砖工的底线。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值