Python遍历目录下文件、读取、千万条数据合并详情

 更新时间:2022年01月26日 09:02:58   作者:你隔壁的小王  
这篇文章主要介绍了Python遍历目录下文件、读取、千万条数据合并详情,对文件夹和文件进行属性判断,首先对文件夹进行遍历,看文件夹里有什么样的文件,读取出文件夹中的所有文件,下面文章将详细介绍该内容,需要的小伙伴可以参考一下

一、使用Python进行文件和文件夹的判断

  • 递归 :主要目的就是遍历文件夹和文件
  • 对文件夹和文件进行属性判断
  • 首先对文件夹进行遍历,看文件夹里有什么样的文件,读取出文件夹中的所有文件
import os
path= "./data" #路径
files = os.listdir(path)
#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
for file in files:
    print(file)
    if os.path.isfile(path+ "/"+file):
        #os.path.isfile(path) 判断路径是否为文件
        print('file'+'这是一个文件')
        filename,extension = os.path.splitext(file)
        #分割路径,返回路径名和文件扩展名的元组
        if extension == ".txt":
            print(filename+'这是一个文本文件')
        elif extension == ".xlsx":
            print(filename+'这是一个excel文件')
    if os.path.isdir(path + "/" +file):
        print(file+"是一个文件夹")

读取结果:

二、使用Python完整的获取所有文件及文件夹并读取相应的文件

在我们遍历文件夹的基础上,如何实现快速读取指定文件,提高工作效率?
只需要在上述代码的基础上,导入pandas包,read_excel_我们所需要的文件即可

import pandas as pd
import os 
path = './data'
def get_all_files(path):
    print('-'*25+'函数被调用'+'-'*25)
    files = os.listdir(path)
#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
    for file in files:
        if os.path.isfile(path+ "/"+file):
            #os.path.isfile(path) 判断路径是否为文件
            print('file'+">>>>>是文件")
            filename,extension = os.path.splitext(file)
            #分割路径,返回路径名和文件扩展名的元组
            if extension == ".txt":
                print(filename+"#####是文本文件#####")
                print("读取"+filename+"文件中的内容...........")
                data = pd.read_table(path+'/'+file)
                print(data)
            elif extension == ".xlsx":
                print(filename+'#####是Excel文件#####')
                print("读取"+filename+"文件中的内容...........")
                data = pd.read_excel(path+'/'+file)
                print(data)
            elif extension == ".csv":
                print(filename+'#####是csv文件#####')
                print("读取"+filename+"文件中的内容...........")
                data = pd.read_csv(path+'/'+file)
                print(data)
        if os.path.isdir(path + "/" +file):
            print(file+"¥¥¥¥¥¥¥是文件夹¥¥¥¥¥¥¥")
            get_all_files(path+'/'+file)
get_all_files(path)    

读取成功! 

三、使用Python合并数据

在日常工作中我们有很多表格需要处理,如何批量的将很多个文件夹中的表格合并到一起?

重点:

DataFrame.append(*other*, *ignore_index=False*, *verify_integrity=False*, *sort=None*)

append的使用

  • other: 是要添加的数据,append很不挑食,这个other可以是dataframe,dict,Seris,list等等。
  • ignore_index: 参数为True时将在数据合并后,按照0,1,2,3....的顺序重新设置索引,忽略了旧索引。
  • verify_integrity:参数为True时,如果合并的数据与原数据包含索引相同的行,将报错。
path='./project_data'
 ## 声明一个空的DataFrame,用来做最终的数据合并
final_data = pd.DataFrame()
# 声明一个空的DataFrame,用来做最终的数据合并
final_data = pd.DataFrame()
 
def get_all_files(path):
    global final_data
    print("-"*20 + "函数被调用" + "-"*20)
    files = os.listdir(path)
    for file in files:
        if os.path.isfile(path + "/" +file):
            print(file+">>>>>是文件")
            filename,extension=os.path.splitext(file)
            # 判断是不是文本文件
            if extension == ".txt" :
                print(filename+"#####是文本文件#####")
                print("读取"+filename+"文件中的内容...........")
                data = pd.read_table(path+'/' +file)
                print(data)
            elif extension=='.xlsx':
                print(filename+"#####是Excel文件#####")
                print("读取"+filename+"文件中的内容...........")
                data = pd.read_excel(path+'/' +file)
                print(data)
            elif extension=='.csv':
                print(filename + "是csv文件,是本次需要处理的文件")
                # 获取文件内容
                file_data = pd.read_csv(path +'/'+file)
                final_data = final_data.append(file_data,ignore_index=True)
                #append描述:在列表ls最后(末尾)添加一个元素object
                print("《《《《合并"+filename+"文件数据》》》》")
                
        # 判断是不是文件夹
        elif os.path.isdir(path+'/'+file):
            print(file + "¥¥¥¥是文件夹¥¥¥¥¥¥")
            get_all_files(path + '/' + file)
get_all_files(path)
print("数据合并完成")

开始合并,我们来查看一下合并后的数据:

 总共1000多万条数据,如果我们用Excel的话估计要很多时间将这么多表格合并,而且会很卡,

到此这篇关于Python遍历目录下文件、读取、千万条数据合并详情的文章就介绍到这了,更多相关Python遍历目录下的文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pickle模块中的dump()和load()方法简介

    Pickle模块中的dump()和load()方法简介

    Pickle模块实现了基本的数据序列化与反序列化操作,通过序列化操作,我们可以将程序中运行的对象信息转化为字节流保存到文件中去,永久存储在磁盘上,这篇文章主要介绍了Pickle模块中的dump()和load()方法介绍,需要的朋友可以参考下
    2023-03-03
  • Python Numpy实现计算矩阵的均值和标准差详解

    Python Numpy实现计算矩阵的均值和标准差详解

    NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。本文主要介绍用NumPy实现计算矩阵的均值和标准差,感兴趣的小伙伴可以了解一下
    2021-11-11
  • Python读取Excel表格,并同时画折线图和柱状图的方法

    Python读取Excel表格,并同时画折线图和柱状图的方法

    今天小编就为大家分享一篇Python读取Excel表格,并同时画折线图和柱状图的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python中map、any、all函数用法分析

    python中map、any、all函数用法分析

    这篇文章主要介绍了python中map、any、all函数用法,实例分析了map、any、all函数的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • Python脚本支持OC代码重构模块调用关系分析实践

    Python脚本支持OC代码重构模块调用关系分析实践

    在软件开发中,经常会遇到一些代码问题,例如逻辑结构复杂、依赖关系混乱、代码冗余、不易读懂的命名等,这些问题可能导致代码的可维护性下降,增加维护成本,同时也会影响到开发效率,本文以Python实现自动化的工具,支持代码重构过程的实践
    2023-10-10
  • Python编解码问题及文本文件处理方法详解

    Python编解码问题及文本文件处理方法详解

    最近在做一个项目,因为文本处理的内容是中文,所以不得不面对python中文处理所带来的种种困惑,这篇文章主要给大家介绍了关于Python编解码问题及文本文件处理方法的相关资料,需要的朋友可以参考下
    2021-06-06
  • Python OpenCV实现识别信用卡号教程详解

    Python OpenCV实现识别信用卡号教程详解

    本文将介绍如何通过 OpenCV 和 Python 使用模板匹配来执行光学字符识别 (OCR),再应用我们的模板匹配 OCR 方法来识别信用卡类型以及 16 位信用卡数字。代码具有一定价值,感兴趣的童鞋可以了解一下
    2021-11-11
  • 浅析Python中将单词首字母大写的capitalize()方法

    浅析Python中将单词首字母大写的capitalize()方法

    这篇文章主要介绍了浅析Python中将单词首字母大写的capitalize()方法,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python Nuitka打包的实现步骤

    Python Nuitka打包的实现步骤

    在Python应用程序开发中,打包是将代码和依赖项组合成可执行文件或库的关键步骤之一,本文主要介绍了Python Nuitka打包的实现步骤,感兴趣的可以了解一下
    2023-12-12
  • 如何解决flask修改静态资源后缓存文件不能及时更改问题

    如何解决flask修改静态资源后缓存文件不能及时更改问题

    在本篇内容里小编给大家整理的是关于如何解决flask修改静态资源后缓存文件不能及时更改问题,需要的朋友们可以学习下。
    2020-08-08

最新评论