python 读取本地CSV数据
csv
模块实现了 CSV 格式表单数据的读写。其提供了诸如“以兼容 Excel 的方式输出数据文件”或“读取 Excel 程序输出的数据文件”的功能,程序员无需知道 Excel 所采用 CSV 格式的细节。
此模块同样可以用于定义其他应用程序可用的 CSV 格式或定义特定需求的 CSV 格式。
csv
模块中的 reader
类和 writer
类可用于读写序列化的数据。也可使用 DictReader
类和 DictWriter
类以字典的形式读写数据。
csv
模块定义了以下函数:
csv.
reader
(csvfile, dialect='excel', **fmtparams)-
返回一个 reader 对象,该对象将逐行遍历 csvfile。csvfile 可以是任何对象,只要这个对象支持 iterator 协议并在每次调用
__next__()
方法时都返回字符串,文件对象 和列表对象均适用。如果 csvfile 是文件对象,则打开它时应使用newline=''
。 1 可选参数 dialect 是用于不同的 CSV 变种的特定参数组。它可以是Dialect
类的子类的实例,也可以是list_dialects()
函数返回的字符串之一。另一个可选关键字参数 fmtparams 可以覆写当前变种格式中的单个格式设置。有关变种和格式设置参数的完整详细信息,请参见 变种与格式参数 部分。csv 文件的每一行都读取为一个由字符串组成的列表。除非指定了
QUOTE_NONNUMERIC
格式选项(在这种情况下,未加引号的字段会转换为浮点数),否则不会执行自动数据类型转换。一个简短的用法示例:
>>> import csv >>> with open('eggs.csv', newline='') as csvfile: ... spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|') ... for row in spamreader: ... print(', '.join(row)) Spam, Spam, Spam, Spam, Spam, Baked Beans Spam, Lovely Spam, Wonderful Spam
csv.
writer
(csvfile, dialect='excel', **fmtparams)-
返回一个 writer 对象,该对象负责将用户的数据在给定的文件类对象上转换为带分隔符的字符串。csvfile 可以是具有
write()
方法的任何对象。如果 csvfile 是文件对象,则打开它时应使用newline=''
。 1 可选参数 dialect 是用于不同的 CSV 变种的特定参数组。它可以是Dialect
类的子类的实例,也可以是list_dialects()
函数返回的字符串之一。另一个可选关键字参数 fmtparams 可以覆写当前变种格式中的单个格式设置。有关变种和格式设置参数的完整详细信息,请参见 变种与格式参数 部分。为了尽量简化与数据库 API 模块之间的对接,None
值会写入为空字符串。虽然这个转换是不可逆的,但它让 SQL 空数据值转储到 CSV 文件更容易,而无需预处理从cursor.fetch*
调用返回的数据。写入前,所有非字符串数据都先用str()
转化为字符串再写入。一个简短的用法示例:
import csv with open('eggs.csv', 'w', newline='') as csvfile: spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL) spamwriter.writerow(['Spam'] * 5 + ['Baked Beans']) spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
csv文件要和python文件在一个文件夹,如到贵州茅台股价:
1234567import
csv
f
=
csv.reader(
open
(
'600519_SHE.csv'
,encoding
=
'UTF-8'
))
for
i
in
f:
print
(i[
1
],i[
5
])
注意:因为文件有中文,需要指定编码UTF-8,不然会出现错误情况;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)