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文件在一个文件夹,如到贵州茅台股价:
import csv f = csv.reader(open('600519_SHE.csv',encoding='UTF-8')) for i in f: print(i[1],i[5])
注意:因为文件有中文,需要指定编码UTF-8,不然会出现错误情况;