浅析Python中CSV文件的读取与写入

发布时间:2026/5/20 8:20:17

浅析Python中CSV文件的读取与写入 在日常Python开发中CSV逗号分隔值文件是一种极为常见的数据交换格式它结构简单、可读性强广泛应用于数据导出、报表生成、批量数据处理等场景。今天就来系统梳理一下Python中CSV文件的读取与写入方法帮助大家高效处理这类文件。 CSV文件的读取Python处理CSV文件主要有两种方式使用内置的csv模块或者借助更强大的第三方库pandas。1. 内置csv模块基础读取csv模块是Python自带的标准库无需额外安装适合处理基础的CSV文件读取需求。Python复制import csv # 基础读取方式 with open(data.csv, r, encodingutf-8) as file: # 创建CSV读取对象 csv_reader csv.reader(file) # 遍历每一行数据 for row in csv_reader: print(row)这种方式会将每一行数据转换为一个列表列表中的每个元素对应CSV文件中的一列。如果CSV文件包含表头还可以通过next()方法单独读取表头Python复制import csv with open(data.csv, r, encodingutf-8) as file: csv_reader csv.reader(file) # 读取表头 header next(csv_reader) print(表头:, header) # 读取数据行 for row in csv_reader: print(row)2. 更灵活的字典读取如果希望直接通过列名表头访问数据可以使用csv.DictReaderPython复制import csv with open(data.csv, r, encodingutf-8) as file: # 创建字典读取对象自动将第一行作为表头 csv_dict_reader csv.DictReader(file) for row in csv_dict_reader: # 通过列名访问对应数据 print(姓名:, row[姓名], 年龄:, row[年龄])3. pandas库高效读取对于数据量较大或需要复杂数据处理的场景pandas库的读取效率和便捷性更具优势Python复制import pandas as pd # 读取CSV文件为DataFrame对象 df pd.read_csv(data.csv) # 查看前5行数据 print(df.head()) # 查看数据基本信息 print(df.info())pandas会自动识别表头将数据转换为结构化的DataFrame支持直接进行数据筛选、统计、可视化等操作。 CSV文件的写入同样写入CSV文件也可以通过csv模块和pandas库实现。1. 内置csv模块基础写入使用csv.writer可以将列表数据写入CSV文件Python复制import csv # 待写入的数据 data [ [姓名, 年龄, 城市], [张三, 25, 北京], [李四, 30, 上海], [王五, 28, 广州] ] with open(output.csv, w, encodingutf-8, newline) as file: # 创建CSV写入对象 csv_writer csv.writer(file) # 写入所有数据 csv_writer.writerows(data)注意添加newline参数可以避免写入时出现空行。如果需要逐行写入可以使用writerow()方法Python复制import csv with open(output.csv, w, encodingutf-8, newline) as file: csv_writer csv.writer(file) # 写入表头 csv_writer.writerow([姓名, 年龄, 城市]) # 逐行写入数据 csv_writer.writerow([张三, 25, 北京]) csv_writer.writerow([李四, 30, 上海])2. 字典格式数据写入如果数据是以字典形式存储的可以使用csv.DictWriter指定表头后直接写入字典数据Python复制import csv # 待写入的字典数据 data [ {姓名: 张三, 年龄: 25, 城市: 北京}, {姓名: 李四, 年龄: 30, 城市: 上海}, {姓名: 王五, 年龄: 28, 城市: 广州} ] # 定义表头 header [姓名, 年龄, 城市] with open(dict_output.csv, w, encodingutf-8, newline) as file: # 创建字典写入对象 csv_dict_writer csv.DictWriter(file, fieldnamesheader) # 写入表头 csv_dict_writer.writeheader() # 写入所有数据 csv_dict_writer.writerows(data)3. pandas库高效写入pandas写入CSV文件同样简单只需调用DataFrame的to_csv()方法Python复制import pandas as pd # 创建DataFrame数据 data { 姓名: [张三, 李四, 王五], 年龄: [25, 30, 28], 城市: [北京, 上海, 广州] } df pd.DataFrame(data) # 写入CSV文件 df.to_csv(pandas_output.csv, indexFalse, encodingutf-8)indexFalse参数用于避免写入自动生成的行索引让输出的CSV文件更简洁。 注意事项与常见问题编码问题处理CSV文件时务必指定正确的编码格式如utf-8、gbk等避免出现中文乱码。分隔符问题部分CSV文件可能使用制表符、分号等作为分隔符此时可以在csv.reader或csv.writer中通过delimiter参数指定例如csv.reader(file, delimiter\t)。数据类型转换使用csv模块读取的数据默认都是字符串类型需要手动转换为整数、浮点数等类型而pandas会自动识别大部分数据类型。大文件处理对于超大CSV文件建议使用csv模块的逐行读取方式或者pandas的chunksize参数分块读取避免内存溢出。源码分享网https://svipm.com.cn描述上千款各行各业的源码

相关新闻