Python -从多个文件夹下读取多个文件

  • 获取多个文件夹的路径
    glob包是一个简单的文件匹配包,用来查找符合特定规则的文件路径名,支持使用简单的通配符进行配匹配,包括: * ? []
    • glob.glob(‘路径’)
      获取指定路径下的文件路径名
    • glob.iglob(‘路径’)
      返回一个可遍历对象
    • 通配符解释
      *:匹配文件名中的0个或任意多个字符
      ?:匹配文件名中的单个字符
      []:使用字符区间([a-z]),可以匹配多个字符中的一个字符
  • os 模块
    • 包含普遍的操作系统功能
    • os.name:指示你正在使用的平台
    • os.getcwd():得到当前工作目录
    • os.listdir(path):返回指定目录下的所有文件和目录名
    • os.path.split(path):返回一个路径的目录名和文件名
    • os.path.join(path, *paths):连接路径
  • 从多个文件夹路径下,获取多个文件(此处读取.txt 文件)
    • 拼接出文件的完整路径
      os.path.join(path, *paths)
    • 判断.txt 文件
      file.endswith(".txt")
    • 读取文件
      pd.read_csv(“文件完整路径”)
# 导入需要用的包
import pandas as pd
import os
import glob

# 获取多个文件夹的路径,并返回一个可迭代对象
dirPath = glob.iglob('./CapitalMuseum/*')

# 将可爹地啊对象进行循环获取,赋值给 big_file
for big_file in dirPath:
	# 获取每个文件夹下的文件名并赋值给 file
    files = os.listdir(big_file)
    # 将获取的所有文件名进行循环判断
    for file in files:
    	# 判断扩展名只为.txt不包含.origin.txt
        if file.endswith(".txt") and not file.endswith(".origin.txt"):
        	# 进行文件完整路径拼接并读取数据
            museum_data = pd.read_csv(os.path.join(big_file,file), delimiter=',', error_bad_lines=False, warn_bad_lines=False, delim_whitespace=False)

参考链接:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html?highlight=read_csv#pandas.read_csv

https://docs.python.org/zh-cn/3/library/os.path.html

https://www.jianshu.com/p/cdf158be01dd

https://blog.csdn.net/csapr1987/article/details/7469769

你可能感兴趣的:(Python -从多个文件夹下读取多个文件)