zoukankan      html  css  js  c++  java
  • Python3编写网络爬虫10-数据存储方式三-CSV文件存储

    3.CSV文件存储

    CSV 全称 Comma-Separated Values 中文叫做逗号分隔值或者字符分隔值,文件以纯文本形式存储表格数据。
    文件是一个字符序列 可以由任意数目的记录组成相当于一个结构化表的纯文本形式,它比Excel更加简洁,
    XLS文本是电子表格,包含文本,数值,公式和格式等内容,CSV都没有 就是特定的字符分隔纯文本,结构简单清晰。

    3.1 写入

    示例:

    import csv
    
    with open('data.csv','w') as csvfile:
    writer = csv.writer(csvfile)#初始化写入对象
    writer.writerow(['id','name','age'])#传入每行数据
    writer.writerow(['10001','mike',20])
    writer.writerow(['10002','bod',22])
    writer.writerow(['10003','jordan',21])

    更改列与列之间分隔符 可以传入 delimiter参数 记得关闭文件

    示例:

    import csv
    
    with open('data.csv','w') as csvfile:
    writer = csv.writer(csvfile,delimiter=' ')#初始化写入对象
    writer.writerow(['id','name','age'])#传入每行数据
    writer.writerow(['10001','mike',20])
    writer.writerow(['10002','bod',22])
    writer.writerow(['10003','jordan',21])

    同时写入多行 参数为二位列表

    import csv
    
    with open('data.csv','w') as csvfile:
    writer = csv.writer(csvfile)#初始化写入对象
    writer.writerow(['id','name','age'])#传入每行数据
    writer.writerows([['10001','mike',20],['10002','bod',22],['10003','jordan',21]])

    一般情况下 爬虫爬取的都是结构化数据 一般会用字典来表示 csv库也提供了字典的写入方式

    示例:

    import csv
    
    with open('data.csv','w') as csvfile:
    fieldname = ['id','name','age']#定义字段
    writer = csv.DictWriter(csvfile,fieldnames=fieldname)#初始化字典写入对象
    writer.writeheader()#写入头信息
    writer.writerow({'id':'10001','name':'mike','age':20})
    writer.writerow({'id':'10002','name':'bod','age':22})
    writer.writerow({'id':'10003','name':'jordan','age':21})

    输入中文 给 open() 加入参数 encoding='utf-8'

    示例:

    import csv
    
    with open('data.csv','a',encoding='utf-8') as csvfile:
    fieldname = ['id','name','age']#定义字段
    writer = csv.DictWriter(csvfile,fieldnames=fieldname)#初始化字典写入对象
    writer.writerow({'id':'10004','name':'小米','age':20})

    3.2 读取

    示例:

    import csv
    
    with open('data.csv','r',encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
    print(row)

    在做数据分析时此种方法用的比较多,也是一种常用的数据存储方式,需要熟练掌握。

  • 相关阅读:
    [Linux]
    [.Net]
    [.Net]
    [Linux]
    [Google]
    面向对象的7个基本设计原则
    windows SDK中的wininet写http客户端
    C++ 用libcurl库进行http通讯网络编程
    感悟
    关于Windows高DPI的一些简单总结
  • 原文地址:https://www.cnblogs.com/liuxiaosong/p/10337133.html
Copyright © 2011-2022 走看看