python 处理 csv 文件
python之禅
共 1780字,需浏览 4分钟
· 2021-02-28
csv 文件是一种逗号分隔的纯文本形式存储的表格数据,Python内置了CSV模块,可直接通过该模块实现csv文件的读写操作,在web应用中导出数据是比较常见操作。
这篇文章介绍csv模块的基本用法
写操作
writer.writerow, 将多列数据写入一行
import csv
with open('some.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(["123", "234", "345"])
writer.writerow(["abc", "efg", "hij"])
如果以文本文件的方式打开,每行数据之间都是用逗号隔开的文本字符串
写入时,必须指定 newline=’’, 否则每插入一行就有一个空行
读操作
with open('some.csv', 'r', newline="") as f:
reader = csv.reader(f)
for row in reader:
print(row)
输出
['123', '234', '345']
['abc', 'efg', 'hij']
DictWriter & DictReader
csv.DictWriter 对象引入了一个fieldnames参数, fieldnames是csv文件中的表头,就是第一行中的数据
with open("person.csv", 'w', newline='') as f:
fieldnames = ["name", "age", "sex"]
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({"name": "zhangsan", "age": 10, "sex": "male"})
writer.writerow({"name": "lis", "age": 20, "sex": "male"})
with open('person.csv', 'r') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
每行输出的是一个字典对象
OrderedDict([('name', 'zhangsan'), ('age', '10'), ('sex', 'male')])
OrderedDict([('name', 'lis'), ('age', '20'), ('sex', 'male')])
默认情况下导出的字符串全是数字时,在excel中打开时会被自动转换成科学计数格式
import csv
field_order = ["会诊单号"]
with open("导出.csv", 'w', encoding="utf8", newline="") as csvfile:
writer = csv.DictWriter(csvfile, field_order)
writer.writeheader()
writer.writerow({"会诊单号": "20210217162737860175"})
只需要在字符串后面加转义字符’\t’即可变成字符串
import csv
field_order = ["会诊单号"]
with open("导出.csv", 'w', encoding="utf8", newline="") as csvfile:
writer = csv.DictWriter(csvfile, field_order)
writer.writeheader()
writer.writerow({"会诊单号": "20210217162737860175"+'\t'})
评论
Python列表知识应知应会
点击上方“Go语言进阶学习”,进行关注回复“Go语言”即可获赠从入门到进阶共10本电子书今日鸡汤只在此山中,云深不知处。一、前言 在Python程序开发中,列表(List)经常会使用。假设一个班里有50个学生现需要统计每一个学生的总成绩情况,如果不使用列
Go语言进阶学习
0
Python 字符串应该用双引号还是单引号?
转载来源:洪尔摩斯PyCharm升级至 2023.2版本后,经常弹出来一个提示问我要不要试一下Black formatter。试了一下,这个Black formatter 很有个性,特别喜欢换行。我的一个文件用PyCharm自带的代码整理器整理完之后是500行左右,然后再用Black整理就变成600
菜鸟学Python
0
delorean,一个超级实用的 Python 库!
作者通常周更,为了不错过更新,请点击上方“Python碎片”,“星标”公众号大家好,今天为大家分享一个超级实用的 Python 库 - delorean。Github地址:https://github.com/myusuf3/delorean/时间在计算机科学和软件开发中是一个至关重要的概念。Pyt
Python 碎片
0
五一Python抢票神器来了
还在为五一回家抢不到火车票发愁吗?今天介绍一个Python抢票神器,希望对你有帮助。Py12306是一个流行的开源项目,旨在帮助用户更便捷地查询和预订中国铁路12306网站上的火车票。以下是使用Py12306的基本步骤和一些注意事项:安装与环境准备安装Python: 确保你的系统中安装了Python
Python小二
1
PyPy为什么能让Python比C还快?一文了解内在机制
我的小册:(小白零基础用Python量化股票分析小册) ,原价299,限时特价2杯咖啡,满100人涨10元。来源:机器之心「如果想让代码运行得更快,您应该使用 PyPy。」—— Python 之父 Guido van Rossum对于研究人员来说,迅速把想法代码化并查看其是否行得通至关重要。Pyth
菜鸟学Python
0
CleverCSV,一个神奇的 python 库!
我的小册:(小白零基础用Python量化股票分析小册) ,原价299,限时特价2杯咖啡,满100人涨10元。来源丨网络介绍CleverCSV 是一个基于 Python 的库,旨在提供比标准库 csv 更智能和灵活的方法来处理 CSV 文件。该库使用机器学习算法来探测 CSV 文件的正确拨号结构,从而
菜鸟学Python
0
python读取多个excel表多个sheet后映射匹配再分组计算、纵向拼接
大家好,我是飞奔的蜗牛ing。一、前言前几天在一个客户给到一单数据处理的 问题,需求是这样的:1.表“aa2020”中2020年数据需要按季度分成四个表。(1-3月、4-6月、7-9月、10-12月)2.表“2020年一季度”代表2020年一季度客户所对应的管理档位,需要把表中的档位导入附表“aa2
IT共享之家
0
5G RedCap贯通行动政策文件发布,这些关键词值得关注
作者:赵小飞物联网智库 原创近日,工信部发布了《关于开展2024年度5G轻量化(RedCap)贯通行动的通知》,从标准、网络、芯片模组、终端、应用、安全、保障7大方面采取具体措施,并给出明确目标,在政策层面对5G RedCap进一步发展提供保障。RedCap承担着5G物联网连接数增长的重要任务,但同
物联网智库
0