在使用Python进行数据爬取的时候,
需要将爬下来的数据写入文件中,
这里记录一下使用Python对CSV文件的读写。
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),
其文件以纯文本形式存储表格数据(数字和文本)。
import csv
csv.reader(csvfile [, dialect='excel'] [optional keyword args])
csv.writer(csvfile [, dialect='excel'] [optional keyword args])
csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)
csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)
# coding:utf-8
import csv
with open('test.csv', 'r') as csvFile:
f_csv = csv.reader(csvFile)
for line in f_csv:
print line
获取结果
# coding:utf-8
import csv
headers = ['编号','姓名','性别','年龄']
rows = [
[5,'王五','男',24],
[6,'赵六','男',16],
[7,'小红','女',20],
[8,'小娜','女',18]
]
with open('test.csv', 'w') as csvFile:
f_csv = csv.writer(csvFile)
f_csv.writerow(headers) # 写入单行
f_csv.writerows(rows) # 写入多行
(注:打开文件我们看都文件有空行,这是加入参数 newline='')
with open('test.csv', 'w', newline='') as csvFile:
# coding:utf-8
import csv
with open('test.csv', 'r') as csvFile:
f_csv = csv.DictReader(csvFile)
for line in f_csv:
print(dict(line))
import csv
rows = [
{'编号': '9', '姓名': '小九', '性别': '女', '年龄': '18'},
{'编号': '10', '姓名': '十月', '性别': '男', '年龄': '20'},
]
fieldnames = ['编号','姓名','性别','年龄'] # 定义表头字段
with open('test.csv', 'w', newline='') as csvFile:
f_csv = csv.DictWriter(csvFile, fieldnames=fieldnames)
f_csv.writeheader() # 写入表头
f_csv.writerows(rows) # 将要写入的数据一次性写入到文件,也可以使用cr.writerow()一次写入一行
'r':读
'w':写
'a':追加
'r+' == r+w(可读可写,文件若不存在就报错(IOError))
'w+' == w+r(可读可写,文件若不存在就创建)
'a+' == a+r(可追加可写,文件若不存在就创建)
对应的,如果是二进制文件,就都加一个b就好啦:
'rb' 'wb' 'ab' 'rb+' 'wb+' 'ab+'
本文为冯奎原创文章,转载无需和我联系,但请注明来自冯奎博客fengkui.net
最新评论