当前位置: 萬仟网 > IT编程>脚本编程>Python > Python -- CSV文件读写

Python -- CSV文件读写

2020年01月18日 14:53  | 萬仟网IT编程  | 我要评论

非字典类型数据读写(reader、writer)

  • delimiter
    • 用于分隔字段的单字符,默认为 ','
import csv

datas = [[1, 2, 3], ['纪', '宇'], ['xxx', 'yyy', 'zzz'], '字符串']

# 写
with open('test.csv', 'w+', newline='') as fr:
    writer = csv.writer(fr, delimiter='|')
    for data in datas:
        writer.writerow(data)
# 读
with open('test.csv', 'r') as fw:
    reader = csv.reader(fw)
    for row in reader:
        print(row)





字典类型数据读写

  • fieldnames 参数
    • 指定字典中值的顺序,csv文件中,第一行数据为键
  • extrasaction 参数
    • 如果传递给 writerow() 方法的字典的某些键在 fieldnames 中找不到
    • 其设置默认值 'raise',会引发 valueerror
    • 如果将其设置为 'ignore',则字典中的其他键值将被忽略
  • writeheader()
    • 写入一行字段名称,fieldnames 参数的值
    • 不写入键,则会以第一行的数据作为默认字段
import csv

datas = [
    {'title': '标题1', 'url': 'xxx1.com', 'pubtime': 'time1', 'author': '作者1'},
    {'title': '标题2', 'url': 'xxx2.com', 'pubtime': 'time2', 'author': '作者2'},
    {'title': '标题3', 'url': 'xxx3.com', 'pubtime': 'time3', 'author': '作者3'},
]

# 写
with open('test.csv', 'w+', newline='', encoding='utf-8') as fr:
    # 设置字段
    fieldnames = ['title', 'pubtime', 'url']
    writer = csv.dictwriter(fr, fieldnames=fieldnames, extrasaction='ignore')
    # 写入第一行的字段
    writer.writeheader()
    for data in datas:
        writer.writerow(data)

# 读
with open('test.csv', 'r', encoding='utf-8') as fw:
    reader = csv.dictreader(fw)
    for row in reader:
        # 返回的行是dict类型
        print(row['title'], row['url'], '\t--\t', row)




如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2020  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com