网易首页 > 网易号 > 正文 申请入驻

Python 文件操作:CSV 格式

0
分享至

CSV(Comma-Separated Values)是一种轻量、通用且跨平台的数据文件格式。

它以纯文本记录表格数据,每一行代表一条记录,每个字段之间用分隔符(通常是逗号)隔开。

几乎所有表格软件(如 Excel、Numbers、Google Sheets)以及文本编辑器都能打开 CSV 文件。

一、CSV 格式特点

CSV 文件的扩展名通常为 .csv,也可以使用 .tsv(制表符分隔)作为变体。

其主要特点包括:

分隔符:用逗号 , 分列(也可用 \t 或 ; 等)。

表头:第一行通常是列名。

引用规则:若字段中包含逗号、引号或换行符,用双引号包裹字段,并将字段内的双引号写作 ""。

换行:每条记录独占一行。

编码:推荐 UTF-8;若为 Excel 兼容,使用 UTF-8-SIG。

缺失值:用空字符串或占位符(如 NA)表示。

示例:

3,Carol,

这是一个包含逗号、引号与换行的 CSV 片段,展示了 CSV 的基本语法结构。

二、在 Python 中表示 CSV 数据

1、在内存中模拟 CSV 文件对象

当我们想在内存中处理 CSV 数据而不立即写入磁盘时,可以使用 标准库的 StringIO 方法:

print(buf.read())

StringIO 适用于测试、临时存储或在网络请求中处理小型 CSV 内容。

2、使用列表与字典在内存中表示表格结构

在写入 CSV 之前,我们通常先在内存中准备结构化数据:

print(data)

这种结构与 CSV 的“行–列”概念天然对应,方便后续用 csv.DictWriter 写入文件。

三、使用 csv 标准库读写 CSV 文件

Python 的标准库 专门用于 CSV 文件读写,能自动处理分隔符、引号与转义等细节。

1、写入 CSV 文件(DictWriter)

下面的示例演示如何将数据写入磁盘上的 students.csv 文件。

print("students.csv 文件已保存。")

• 参数 newline="" 避免 Windows 下出现空行;

• utf-8-sig 确保 Excel 打开无乱码。

2、读取 CSV 文件(DictReader)

下面展示如何读取 students.csv 文件内容,并将每一行解析为字典。

        print(row)

输出结果:

{'id': '3', 'name': 'Carol', 'score': '90'}

注意:csv 模块默认将所有字段读取为字符串类型,如需数值计算可显式转换。

3、使用自定义分隔符(TSV 文件)

下面示例展示如何写入使用制表符分隔的 TSV 文件。

    writer.writerows(data)

当字段中包含大量逗号时,可以改用制表符 \t,即 TSV 格式(Tab-Separated Values)。

4、防止 CSV 注入(安全写入)

某些表格软件(如 Excel)会把以 =、+、-、@ 开头的单元格当作公式执行,可能造成安全隐患。

写入前可添加单引号 ' 作为前缀:

    return value

生产环境中建议在写入前,对每个字符串字段调用 safe_cell()。

四、使用 pandas 处理 CSV 文件

第三方库 提供更高层的 CSV 支持,适合批量分析、筛选与统计。

1、使用 pandas 读取 CSV 文件

下面的示例展示如何快速加载并查看 CSV 文件内容。

print(df.head())

输出:

2   3  Carol     90

pandas 会自动解析表头、处理引号与编码,是数据分析的首选方案。

2、筛选与统计数据

下面的示例展示如何筛选出成绩大于等于 90 的学生,并计算平均分。

print("平均分:", avg_score)

pandas 的 DataFrame 支持丰富的筛选与聚合运算,非常适合快速探索数据。

3、将结果写回新的 CSV 文件

print("高分学生表已保存为 top_students.csv。")

写入时使用 index=False,可避免额外生成行索引列。

五、综合案例:从构造数据到统计分析

以下示例演示了 CSV 文件的完整流程:构造 → 写入 → 读取 → 筛选 → 统计 → 保存。

top.to_csv("top_students.csv", index=False, encoding="utf-8-sig")

运行结果:

平均分:85.8

此示例展示了 CSV 文件在数据分析中的完整生命周期:数据创建 → 存储 → 读取 → 处理 → 输出。

小结

csv 标准库:轻量级、跨平台,适合通用文件读写。

pandas:强大易用,适合复杂分析、筛选与统计。

建议配置:newline="" + encoding="utf-8-sig" 可最大化跨平台兼容。

安全性:写入前防止 CSV 注入;读取后注意字段类型转换。

点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
聚焦身体敏感部位、衣着暴露……得物中小学穿搭内容被指擦边!

聚焦身体敏感部位、衣着暴露……得物中小学穿搭内容被指擦边!

柴狗夫斯基
2026-04-22 21:41:01
“挪用父亲公司1700万”女孩发声:一次打赏10万没感觉,现实中买包都嫌贵;把女主播推上位有成就感,后来她有了更多大姐,就去刷男团……

“挪用父亲公司1700万”女孩发声:一次打赏10万没感觉,现实中买包都嫌贵;把女主播推上位有成就感,后来她有了更多大姐,就去刷男团……

都市快报橙柿互动
2026-04-21 23:46:41
切尔西官宣罗塞尼尔下课,5连败0进球无缘欧冠,违约金2400万英镑

切尔西官宣罗塞尼尔下课,5连败0进球无缘欧冠,违约金2400万英镑

夏侯看英超
2026-04-23 01:08:54
全线大涨!美股超3600只个股上涨,科技股拉升;中国金龙指数涨0.44%,金银、油价也在涨丨美股开盘

全线大涨!美股超3600只个股上涨,科技股拉升;中国金龙指数涨0.44%,金银、油价也在涨丨美股开盘

每日经济新闻
2026-04-22 22:44:07
中央明确了!社保最低缴费年限要提高,70、80后得早做准备

中央明确了!社保最低缴费年限要提高,70、80后得早做准备

云鹏叙事
2026-04-12 16:36:39
郑钦文消除外界退赛马德里担心,相信吴易昺有进TOP20水平

郑钦文消除外界退赛马德里担心,相信吴易昺有进TOP20水平

网球之家
2026-04-21 23:43:49
女子穿汉服乘地铁被拒后吐槽:我们是中国人又不是日本人

女子穿汉服乘地铁被拒后吐槽:我们是中国人又不是日本人

映射生活的身影
2026-04-21 15:27:03
个人收款被查了!2026年个人收款高于这个数,要小心!

个人收款被查了!2026年个人收款高于这个数,要小心!

新浪财经
2026-04-21 22:04:32
4月车市暴跌真相:消费者为什么不买车了?

4月车市暴跌真相:消费者为什么不买车了?

小李子体育
2026-04-22 12:39:36
白宫:万斯巴基斯坦之行已被取消

白宫:万斯巴基斯坦之行已被取消

新华社
2026-04-22 06:26:43
火遍外网的玩偶姐姐首次曝光全脸照和收入,评论区却全被她颜值惊呆!

火遍外网的玩偶姐姐首次曝光全脸照和收入,评论区却全被她颜值惊呆!

乔话
2026-04-21 21:16:37
山西忻州市公务员局发布情况说明:杨某媛(女)与自媒体贴文中所分析的杨某媛并非同一人

山西忻州市公务员局发布情况说明:杨某媛(女)与自媒体贴文中所分析的杨某媛并非同一人

环球网资讯
2026-04-22 16:51:03
四川5月1日起实施最严禁烟新规

四川5月1日起实施最严禁烟新规

闪电新闻
2026-04-22 17:34:25
一地什么都卷,连体育也卷?家长:我们这里的孩子是犯了天条嘛?

一地什么都卷,连体育也卷?家长:我们这里的孩子是犯了天条嘛?

新东方
2026-04-22 17:13:22
震惊全网!拼多多暴力抗法,市值万亿巨头为何如此嚣张?

震惊全网!拼多多暴力抗法,市值万亿巨头为何如此嚣张?

我不叫阿哏
2026-04-22 15:20:46
特斯拉 Model Y 新版本现身!值得期待

特斯拉 Model Y 新版本现身!值得期待

花果科技
2026-04-22 15:35:37
距开赛仅50天!巴西8000万天才无缘世界杯 4级腿筋拉伤+崩溃痛哭

距开赛仅50天!巴西8000万天才无缘世界杯 4级腿筋拉伤+崩溃痛哭

我爱英超
2026-04-22 22:26:42
火狐把VPN塞进浏览器,免费午餐能吃吗?

火狐把VPN塞进浏览器,免费午餐能吃吗?

报错免疫体
2026-04-22 00:36:29
常德澧县一对夫妻给鱼塘消毒时不幸溺亡,留下两个孩子,当地:孩子已得到妥善照顾

常德澧县一对夫妻给鱼塘消毒时不幸溺亡,留下两个孩子,当地:孩子已得到妥善照顾

极目新闻
2026-04-22 23:04:41
0-3!11.7亿豪门5连败0进球 114年耻辱纪录诞生 欧冠门票渐行渐远

0-3!11.7亿豪门5连败0进球 114年耻辱纪录诞生 欧冠门票渐行渐远

狍子歪解体坛
2026-04-22 04:59:21
2026-04-23 02:03:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
1826文章数 80关注度
往期回顾 全部

科技要闻

对话梅涛:没有视频底座,具身智能走不远

头条要闻

伊朗:特朗普“又说谎了”

头条要闻

伊朗:特朗普“又说谎了”

体育要闻

网易传媒再度签约法国队和阿根廷队

娱乐要闻

蜜雪冰城泰国代言人 被扒出辱华黑历史

财经要闻

医院专家号"秒空"!警方牵出黑色产业链

汽车要闻

纯电续航301km+激光雷达 宋Pro DM-i飞驰版9.99万起

态度原创

数码
时尚
艺术
手机
公开课

数码要闻

宁德时代发布第三代神行超充电池:6分钟满电 续航1500公里

用了8年还心动,这笔钱是花得真值啊

艺术要闻

看!这些美女的眼神能让你心醉神迷!

手机要闻

Ultra凉了!部分手机品牌停更Ultra:Pro Max成重头戏

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版