📜  使用Python从目录中获取所有 CSV 文件

📅  最后修改于: 2022-05-13 01:55:21.668000             🧑  作者: Mango

使用Python从目录中获取所有 CSV 文件

Python提供了许多内置包和模块来处理工作区中的 CSV 文件。可以在系统的目录和子目录中访问 CSV 文件并进行修改或编辑。 CSV 文件内容既可以打印在 shell 上,也可以以数据帧的形式保存,稍后播放。

在本文中,我们将看到如何遍历包含在由不同类型的文件组成的目录(文件夹/路径)中的 n 个 CSV 文件,并处理这些文件的内容。因此,我们将两种不同的方法应用于我们的任务。

两种方法的输入目录:

使用的 CSV:



CSV 1:

CSV 2:

CSV 3:

方法一:使用 Glob 模块

  • 最初,源目录的路径被指定,在这种情况下,文件夹“csvfoldergfg”使用路径变量。
path = "csvfoldergfg"
  • 为了定位所有名称可能未知的 CSV 文件,调用 glob 模块并调用其 glob 方法。它提供了使用 glob.glob(path) 的路径。这将返回位于路径内的所有 CSV 文件列表。使用的正则表达式等效于 *.csv,它匹配扩展名为 .csv 的所有文件。
glob.glob(path, '*.csv')
  • 然后使用 for 循环对这些文件执行迭代,并使用 pandas 库的 read_csv() 方法将内容读入数据帧。然后可以操作使用此方法获取的信息。
read_csv(file_contents)

以下代码在本地机器上执行,其中脚本和指定路径的目录都存储在同一个工作目录中:

Python3
# importing the required modules
import glob
import pandas as pd
  
# specifying the path to csv files
path = "csvfoldergfg"
  
# csv files in the path
files = glob.glob(path + "/*.csv")
  
# defining an empty list to store 
# content
data_frame = pd.DataFrame()
content = []
  
# checking all the csv files in the 
# specified path
for filename in files:
    
    # reading content of csv file
    # content.append(filename)
    df = pd.read_csv(filename, index_col=None)
    content.append(df)
  
# converting content to data frame
data_frame = pd.concat(content)
print(data_frame)


Python3
# importing the required packaged 
# in python
import pandas as pd
import os
dir_name = "csvfoldergfg"
  
# specifying an empty list for content
content = []
for file in os.listdir(dir_name):
      
    # reading content into data frame
    df = pd.read_csv(file)
    df_list.append(df)
  
final_content = df.append(df for df in df_list)
print(final_content)


输出:

方法二:使用OS模块

  • 最初指定源目录的路径,在这种情况下,文件夹“csvfoldergfg”使用 dir_name字符串变量。
dir_name = "csvfoldergfg"
  • 为了定位所有名称可能未知的文件,调用 os 模块,并调用其 listdir() 方法。它提供了使用 os.listdir(path) 的路径。这将返回位于路径内的所有文件列表。
os.listdir(dir_name)
  • 然后使用 for 循环对这些文件执行迭代,并使用 pandas 库的 read_csv() 方法将内容读入数据帧。然后可以操作使用此方法获取的信息。
read_csv(file_contents)

以下代码在本地机器上执行:

蟒蛇3

# importing the required packaged 
# in python
import pandas as pd
import os
dir_name = "csvfoldergfg"
  
# specifying an empty list for content
content = []
for file in os.listdir(dir_name):
      
    # reading content into data frame
    df = pd.read_csv(file)
    df_list.append(df)
  
final_content = df.append(df for df in df_list)
print(final_content)

输出: