zoukankan      html  css  js  c++  java
  • csv 库

    csv(Comma-Separated Values, 逗号分割值)是存储表格数据的常用文件格式。

    它每一行都用一个换行符分隔,列与列之间用逗号分隔。

    本地文件

    Python的csv库可以非常简单地修改csv文件,甚至从零开始创建一个csv文件。

    比如:

    import csv
    
    csvFile = open("../files/test.csv",'w+')
    try:
        writer = csv.writer(csvFile)
        writer.writerow(('number','number plus 2','number times 2'))
        for i in range(10):
            writer.writerow((i,i+2,i*2))
    finally:
        csvFile.close()
    

    其中writerow()用来写入行。

    网络文件

    对于网络上的csv文件,我们可以直接把文件读成一个字符串,然后转换成一个StringIO对象,使它具有文件的属性。

    比如说从网上获取Monty Python乐团的专辑列表,然后把每一行都打印到命令行里。

    from urllib.request import urlopen
    from io import StringIO
    import csv
    
    data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii','ignore')
    dataFile = StringIO(data)
    csvReader = csv.reader(dataFile)
    
    for row in csvReader:
        print("The album ""+row[0]+"" was released in "+str(row[1]))
    

    输出结果是这样的

    The album "Name" was released in Year
    The album "Monty Python's Flying Circus" was released in 1970
    The album "Another Monty Python Record" was released in 1971
    ...
    

    所以可以发现这个csv.reader返回的csvReader对象是可迭代的,而且是一个Python的列表。

    还有一个csv.DictReader函数,它返回的对象是一个Python的字典。

    from urllib.request import urlopen
    from io import StringIO
    import csv
    
    data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii','ignore')
    dataFile = StringIO(data)
    csvReader = csv.DictReader(dataFile)
    
    print(dictReader.fieldnames)
    
    for row in dictReader:
        print(row)
    

    输出结果

    ['Name','Year']
    {'Name':"Monty Python's Flying Circus",'Year':'1970'}
    {'Name':"Another Monty Python Record",'Year':'1971'}
    ...
    

    【参考】

    [1]《Python网络数据采集》Ryan Mitchell

  • 相关阅读:
    数据库生成连续编号 前几位为零
    C#中图片与BASE64码互相转换
    C#基于Socket的CS模式的完整例子
    一个公共类
    HttpCookie 操作Cookie
    C#打包SQL数据库部署安装
    <转>遍历 进程 内的内核对象
    《windows核心编程》–Windows内存体结构(二)
    《windows核心编程》–Windows内存体结构(一)
    《windows 核心编程》 探索虚拟内存
  • 原文地址:https://www.cnblogs.com/IvyWong/p/10086562.html
Copyright © 2011-2022 走看看