我有按日期命名的 csv 檔案串列,例如:
2020-01-01, 2020-01-02... 2020-01-31
我需要將它們批量加載到 sqlite 資料庫中。但我不知道怎么做。
我有一個腳本:
file_name = '2020-01-{}.csv'
test = pd.concat([pd.read_csv(file_name.format(i)) for i in range(1, 9)])
test.to_sql('test', conn, if_exists='append', index=False)
但是為了使它作業,我手動添加了第一天,例如:
file_name = '2020-01-0{}.csv', file_name = '2020-01-1{}.csv', file_name = '2020-01-2{}.csv'...
所以,我的問題是,我怎樣才能將所有檔案添加到資料庫中,只給出年份和月份?也許它也可以用于未來的資料。如果我添加新的 csv,代碼只需要新的 csv 并將其添加到 db。我正在使用熊貓和 sqlite。
uj5u.com熱心網友回復:
您可以按照以下步驟執行此程序
- 列出所有檔案
- 運行一個回圈并將它們添加到資料庫中
所以作業解決方案應該像
import pandas as pd
def read_csv_file(file_name) -> pd.DataFrame:
"""Read csv file and return a dataframe"""
df = pd.read_csv(file_name)
return df
def get_all_csv_files() -> list:
"""Get all csv files in the directory"""
import glob
files = glob.glob("*.csv")
return files # Output : ['2020-01-01.csv', ... '2020-01-31.csv']
for file in get_all_csv_files():
"""Loop through all CSV files and do something"""
df = read_csv_file(file)
print(df)
# Do something with the dataframe here like adding into the database
# To move them into another directory/folder Create a folder "Processed" in the same dir
import shutil
shutil.move(file, "Processed")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/528238.html
