学堂 学堂 学堂公众号手机端

python遍历目录文件并读取的操作是什么

lewis 6年前 (2019-04-20) 阅读数 9 #技术
关于“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完整的获取所有文件及文件夹并读取相应的文件 三、使用Python合并数据 append的使用

一、使用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遍历目录文件并读取的操作是什么的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。最后,想要了解更多,欢迎关注博信,博信将为大家推送更多相关的文章。
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门