跳转到主内容
极星编程网:以代码为星,赴技术山海!

Python读取CSV文件_csv模块使用教程

Python开发推荐使用csv模块而非底层\_csv;读取用csv.reader(逐行列表)或csv.DictReader(带表头字典);写入用csv.writer或csv.DictWriter;注意编码、换行、字段类型转换等细节。 Python内置的
_csv
模块是底层实现,一般不直接使用;实际开发中推荐用
csv
模块(它封装并导出了
_csv
的功能),既稳定又易用。 读取CSV文件的基本方法 使用
csv.reader
逐行读取,返回可迭代对象,每行是字符串列表: 先用
open()
以文本模式打开文件(注意编码,如
encoding='utf-8'
) 传入文件对象给
csv.reader()
,可指定分隔符(
delimiter=','
)、引号规则等参数 遍历reader对象,每行自动按逗号拆分,并处理引号、换行、空格等常见格式问题 示例: importcsvwith open('data.csv', encoding='utf-8') as f:reader = csv.reader(f)for row in reader:print(row) # 如 ['Alice', '25', 'Beijing'] 处理带表头的CSV文件 用
csv.DictReader
更直观:自动把首行当字段名,后续每行返回字典: 立即学习 “ Python免费学习笔记(深入) ”; Python 3.14.3 微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。 下载 无需手动跳过标题行,
fieldnames
参数可自定义列名 通过键名访问数据,比如
row['name']
比
row[0]
更清晰、抗列序变化 若文件无表头,可传入
fieldnames=['id', 'name', 'age']
示例: with open('users.csv', encoding='utf-8') as f:reader = csv.DictReader(f)for row in reader:print(row['name'], row['age']) 写入CSV文件的对应操作 写入用
csv.writer
或
csv.DictWriter
,逻辑对称:
csv.writer(f).writerow(['a', 'b', 'c'])
写一行列表
csv.writer(f).writerows([['x','y'], ['m','n']])
批量写入
DictWriter
需先调用
writeheader()
写表头,再用
writerow({})
写字典数据 写入时注意指定
newline=''
避免Windows下多出空行 常见问题与注意事项 CSV看似简单,但细节影响正确性: 编码错误最常见——中文乱码多半因没设
encoding='utf-8-sig'
(兼容BOM) 含逗号、换行符或引号的字段会被自动加引号保护,解析时
csv
模块会正确还原 空行默认被跳过,如需保留,可用
skipinitialspace=True
或手动判断
if row:
数值列读出来仍是字符串,需显式转换:
int(row[1])
或用
pandas
自动推断类型

相关文章