专栏名称: Python之禅
分享Python相关技术干货,偶尔扯扯其它的
目录
相关文章推荐
Python爱好者社区  ·  节后第一个私活,赚了3w ·  2 天前  
Python爱好者社区  ·  python接私活,yyds ·  23 小时前  
Python爱好者社区  ·  DeepSeek 最新中国大学排名 ·  23 小时前  
Python开发者  ·  “李飞飞团队50 美元炼出 ... ·  4 天前  
Python开发者  ·  国产 DeepSeek V3 ... ·  4 天前  
51好读  ›  专栏  ›  Python之禅

python 处理 csv 文件

Python之禅  · 公众号  · Python  · 2021-02-25 09:00

正文

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






请到「今天看啥」查看全文