如何在多平台环境中从文件夹导入多个csv文件

2024-10-02 20:44:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想Python导入几个CSV文件在一个文件夹中,并连接它们。当我在Mac和Windows上工作时,我需要一个同时适用于两者的解决方案。另外,我需要Python以一种特定的方式读取CSV:separation by

这是我目前的情况,我必须手动添加代码中的文件:

import pandas as pd

loading_files = Path("Loading Files/")

loading_feb01 = pd.read_csv(loading_files / "Loading FEB 01.csv.csv", sep = ';', header = 0)
loading_feb02 = pd.read_csv(loading_files / "Loading FEB 02.csv.csv", sep = ';', header = 0)
loading_feb03 = pd.read_csv(loading_files / "Loading FEB 03.csv.csv", sep = ';', header = 0)
loading_feb04 = pd.read_csv(loading_files / "Loading FEB 04.csv.csv", sep = ';', header = 0)

loading_feb_raw = [loading_feb01, loading_feb02, loading_feb03, 
loading_feb04]
loading_feb = pd.concat(loading_feb_raw)

我想有一个简单的方法,让所有以“加载”开始的文件被导入,正确读取分号,然后连接。最重要的是,同样的代码是否也适用于Excel文件(我还想添加一些其他代码)

我找到了这段代码,可以导入很多文件,但无法获取sep=';'要工作:

 df = pd.concat([pd.read_csv(f) for f in glob.glob('loading*.csv')], ignore_index = True)

知道我做错了什么吗


Tags: 文件csv代码readfilessepfebheader
3条回答
directory = "Loading Files/"
loading_feb_raw = []

# Iterate over files in directory
for file in os.listdir(directory):
    # Only consider files of form "Loading*.csv"
    if file.startswith("Loading") and file.endswith(".csv"):
        csv = pd.read_csv(file, sep=';', header=0)
        # Add read csv to container
        loading_feb_raw.append(csv)

# Concatenate contents of container
loading_feb = pd.concat(loading_feb_raw)

我把其他几个答案和这个结合起来就解决了

loading = pd.concat([pd.read_csv(f, delimiter=";") for f in loading_files.glob('Loading*.csv')], ignore_index = True)

^{}将返回目录中所有文件的列表。只需遍历名称,检查名称.endswith('.csv')是否正确并动态打开它

相关问题 更多 >