# 小型CSV处理项目:日期格式转换与文件输出


背景介绍

在数据处理中,CSV格式的数据往往需要进行格式化,例如日期、金额或字符串转换。Python作为一门功能强大的语言,提供了丰富的库支持,例如pandascsv模块,使得实现CSV文件读取、格式转换及输出变得简单高效。本项目旨在通过Python实现CSV文件的处理功能,实现日期格式转换,确保输出数据的格式统一。

思路分析

  1. 输入读取:使用csv.reader读取CSV文件,支持行分隔符(默认换行符\n),并处理行末尾的空行。
  2. 日期格式转换:通过datetime模块解析输入字符串,例如"2023-05-14",并将其转换为datetime.datetime对象,再通过strftime函数转换为YYYY-MM-DD格式。
  3. 输出处理:使用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数据时的优势:
– 可读性高,适合数据处理任务;
– 代码简洁易维护;
– 支持灵活的数据转换和格式化;
– 输出文件路径可自定义,适应不同需求。

本代码在本地环境中运行,输出的文件格式与输入一致,确保了数据的格式统一性和处理的准确性。