簡體   English   中英

如何在多平台環境中從文件夾中導入多個 csv 文件

[英]How to import several csv files from a folder, within a multiplatform environment

我希望 Python 導入一個文件夾中的多個 CSV 文件並將它們連接起來。 當我在 Mac 和 Windows 上工作時,我需要一個適用於兩者的解決方案。 另外,我需要 Python 以特定方式讀取 CSV:分隔方式;

這是我目前的情況,我必須在代碼中手動添加文件:

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)

知道我做錯了什么嗎?

我只是通過將其他一些答案與此結合來解決它

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

os.listdir()將返回目錄中所有文件的列表。 只需遍歷名稱,檢查名稱是否為.endswith('.csv')並動態打開它

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM