背景介绍
在数据处理中,CSV格式的数据往往需要进行格式化,例如日期、金额或字符串转换。Python作为一门功能强大的语言,提供了丰富的库支持,例如pandas和csv模块,使得实现CSV文件读取、格式转换及输出变得简单高效。本项目旨在通过Python实现CSV文件的处理功能,实现日期格式转换,确保输出数据的格式统一。
思路分析
- 输入读取:使用
csv.reader读取CSV文件,支持行分隔符(默认换行符\n),并处理行末尾的空行。 - 日期格式转换:通过
datetime模块解析输入字符串,例如"2023-05-14",并将其转换为datetime.datetime对象,再通过strftime函数转换为YYYY-MM-DD格式。 - 输出处理:使用
csv.writer写入处理后的数据,确保输出格式与输入一致。
代码实现
import csv
import datetime
def process_csv(input_path, output_path):
# 读取原始CSV文件
with open(input_path, 'r', newline='', encoding='utf-8') as infile:
reader = csv.reader(infile)
# 处理所有行
for row in reader:
# 转换日期格式
date_str = row[0].strip()
try:
parsed_date = datetime.datetime.strptime(date_str, "%d-%m-%Y")
new_row = [str(parsed_date.year), str(parsed_date.month), str(parsed_date.day)]
except ValueError:
new_row = [date_str] # 若解析失败,保留原始字符串
# 写入处理后的数据
with open(output_path, 'w', newline='', encoding='utf-8') as outfile:
writer = csv.writer(outfile)
writer.writerows(new_row)
# 示例用法
if __name__ == "__main__":
input_path = "/data/input.csv"
output_path = "/data/output.csv"
process_csv(input_path, output_path)
总结
本项目通过Python实现CSV文件的读取、日期格式转换及文件输出,展示了Python在处理CSV数据时的优势:
– 可读性高,适合数据处理任务;
– 代码简洁易维护;
– 支持灵活的数据转换和格式化;
– 输出文件路径可自定义,适应不同需求。
本代码在本地环境中运行,输出的文件格式与输入一致,确保了数据的格式统一性和处理的准确性。