python - 重命名列并重新格式化多个 CSV 文件的数据
问题描述
我有一个包含以下行的文件夹 CSV 文件:
Date | A | B | C |
2021-10-11| A | B | C |
我想重新排列每个文件中的日期列,例如,从 2021-10-11 到 10/11/2021。
解决方案
使用 pathlib、datetime 和 csv 模块
要导入数据,请使用csv模块并翻转日期,您将需要一个 csv 阅读器和一个 csv 编写器。使用DictReader和DictWriter类会很方便。
使用datetime模块转换日期非常简单。
import csv
from datetime import datetime
old_fmt = '%Y-%m-%d'
new_fmt = '%m/%d/%Y'
def process_file(path):
# read the data in
with path.open('r') as f:
reader = csv.DictReader(f)
fieldnames = reader.fieldnames
data = list(reader)
# write the data out
with path.open('w') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
for row in data:
# here we convert the format
dt = datetime.strptime(row['date'], old_fmt)
row['date'] = dt.strftime(new_fmt)
writer.writerow(row)
pathlib是一个很好的文件系统模块。它很容易处理所有文件。
from pathlib import Path
folder = Path('path/to/directory')
for path in folder.iterdir():
if path.is_file():
process_file(path)