zoukankan      html  css  js  c++  java
  • python csv模块

      1 import csv  # Comma Separated Value
      2 
      3 # class Dialect
      4 #     delimiter = None           # 分隔符
      5 #     doublequote = None         # 元素是引用符,双倍的引用符。默认是true,如果改为false就需要设置分隔符,否则报错。
      6 #     escapechar = None          # 转义符
      7 #     lineterminator = None      # 行终止符
      8 #     quotechar = None           # 引用符
      9 #     quoting = None             # 引用方式
     10 #     skipinitialspace = None    # 忽略分割后面的空格,默认是flase
     11 #
     12 #
     13 # QUOTE_ALL = 1         # 全加引号
     14 # QUOTE_MINIMAL = 0     # 分隔符和引用符号加双引号
     15 # QUOTE_NONE = 3        # 全部不加双引号,分隔符要加转义符
     16 # QUOTE_NONNUMERIC = 2  # 数字不加引号
     17 #
     18 # csv.QUOTE_MINIMAL means only when required, for example, when a field contains either the quotechar or the delimiter
     19 # csv.QUOTE_ALL means that quotes are always placed around fields.
     20 # csv.QUOTE_NONNUMERIC means that quotes are always placed around fields which do not parse as integers or floating point numbers.
     21 # csv.QUOTE_NONE means that quotes are never placed around fields.
     22 
     23 
     24 # 1、写一个csv文件  quoting=csv.QUOTE_ALL
     25 with open("1.csv", "w", newline="") as f:
     26     # dialect为打开csv文件的方式,默认是excel,delimiter="	"参数指写入的时候的分隔符
     27     # csv_writer = csv.writer(f, dialect="excel-tab")
     28     # csv_writer = csv.writer(f, dialect="excel", delimiter="	")
     29     csv_writer = csv.writer(f, dialect="excel", quoting=csv.QUOTE_ALL)
     30     # csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
     31     csv_writer.writerow(["A", "B", ",", 5])
     32     csv_writer.writerow(["E", "F", '"', 6])
     33 
     34 with open("1.csv", "rb") as f:
     35     print(f.read())
     36     # b'"A","B",",","5"
    "E","F","""","6"
    '
     37 
     38 with open("1.csv", "r") as f:
     39     print(f.read())
     40     # "A","B",",","5"
     41     # "E
     42 
     43 # 2、写一个csv文件  quoting=csv.QUOTE_MINIMAL
     44 with open("2.csv", "w", newline="") as f:
     45     # dialect为打开csv文件的方式,默认是excel,delimiter="	"参数指写入的时候的分隔符
     46     # csv_writer = csv.writer(f, dialect="excel-tab")
     47     # csv_writer = csv.writer(f, dialect="excel", delimiter="	")
     48     csv_writer = csv.writer(f, dialect="excel", quoting=csv.QUOTE_MINIMAL)
     49     # csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
     50     csv_writer.writerow(["A", "B", ",", 5])
     51     csv_writer.writerow(["E", "F", '"', 6])
     52 
     53 with open("2.csv", "rb") as f:
     54     print(f.read())
     55     # b'A,B,",",5
    E,F,"""",6
    '
     56 
     57 with open("2.csv", "r") as f:
     58     print(f.read())
     59     # A,B,",",5
     60     # E,F,"""",6
     61 
     62 
     63 # 3、写一个csv文件  quoting=csv.QUOTE_NONE
     64 with open("3.csv", "w", newline="") as f:
     65     # dialect为打开csv文件的方式,默认是excel,delimiter="	"参数指写入的时候的分隔符
     66     # csv_writer = csv.writer(f, dialect="excel-tab")
     67     # csv_writer = csv.writer(f, dialect="excel", delimiter="	")
     68     csv_writer = csv.writer(f, dialect="excel", quoting=csv.QUOTE_NONE, escapechar='\')  # 这种方式需要设置转义符
     69     # csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
     70     csv_writer.writerow(["A", "B", ",", 5])
     71     csv_writer.writerow(["E", "F", '"', 6])
     72 
     73 with open("3.csv", "rb") as f:
     74     print(f.read())
     75     # b'A,B,\,,5
    E,F,\",6
    '
     76 
     77 with open("3.csv", "r") as f:
     78     print(f.read())
     79     # A,B,\,,5
     80     # E,F,",6
     81 
     82 
     83 # 4、写一个csv文件  quoting=csv.QUOTE_NONNUMERIC
     84 with open("4.csv", "w", newline="") as f:
     85     # dialect为打开csv文件的方式,默认是excel,delimiter="	"参数指写入的时候的分隔符
     86     # csv_writer = csv.writer(f, dialect="excel-tab")
     87     # csv_writer = csv.writer(f, dialect="excel", delimiter="	")
     88     csv_writer = csv.writer(f, dialect="excel", quoting=csv.QUOTE_NONNUMERIC)
     89     # csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
     90     csv_writer.writerow(["A", "B", ",", 5])
     91     csv_writer.writerow(["E", "F", '"', 6])
     92 
     93 with open("4.csv", "rb") as f:
     94     print(f.read())
     95     # b'"A","B",",",5
    "E","F","""",6
    '
     96 
     97 with open("4.csv", "r") as f:
     98     print(f.read())
     99     # "A","B",",",5
    100     # "E","F","""",6
    101 
    102 
    103 # 5、写一个csv文件  quoting=默认 (quoting=csv.QUOTE_MINIMAL)
    104 with open("5.csv", "w", newline="") as f:
    105     # dialect为打开csv文件的方式,默认是excel,delimiter="	"参数指写入的时候的分隔符
    106     # csv_writer = csv.writer(f, dialect="excel-tab")
    107     # csv_writer = csv.writer(f, dialect="excel", delimiter="	")
    108     csv_writer = csv.writer(f, dialect="excel")
    109     # csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
    110     csv_writer.writerow(["A", "B", ",", 5])
    111     csv_writer.writerow(["E", "F", '"', 6])
    112 
    113 with open("5.csv", "rb") as f:
    114     print(f.read())
    115     # b'A,B,",",5
    E,F,"""",6
    '
    116 
    117 with open("5.csv", "r") as f:
    118     print(f.read())
    119     # A,B,",",5
    120     # E,F,"""",6
    121 
    122 
    123 # 6、写一个csv文件
    124 with open("6.csv", "w", newline="") as f:
    125     # dialect为打开csv文件的方式,默认是excel,delimiter="	"参数指写入的时候的分隔符
    126     # csv_writer = csv.writer(f, dialect="excel-tab")
    127     # csv_writer = csv.writer(f, dialect="excel", delimiter="	")
    128     csv_writer = csv.writer(f)
    129     # csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
    130     csv_writer.writerow(["A", "B", ",", 5])
    131     csv_writer.writerow(["E", "F", '"', 6])
    132 
    133 with open("6.csv", "rb") as f:
    134     print(f.read())
    135     # b'A,B,",",5
    E,F,"""",6
    '
    136 
    137 with open("6.csv", "r") as f:
    138     print(f.read())
    139     # A,B,",",5
    140     # E,F,"""",6
    141 
    142 
    143 # 7、注册风格
    144 csv.register_dialect('mystyle', delimiter=',', quoting=csv.QUOTE_MINIMAL)
    145 with open("7.csv", "w", newline="") as f:
    146     # dialect为打开csv文件的方式,默认是excel,delimiter="	"参数指写入的时候的分隔符
    147     # csv_writer = csv.writer(f, dialect="excel-tab")
    148     # csv_writer = csv.writer(f, dialect="excel", delimiter="	")
    149     csv_writer = csv.writer(f, dialect="mystyle")
    150     # csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
    151     csv_writer.writerow(["A", "B", ",", 5])
    152     csv_writer.writerow(["E", "F", '"""', 6])
    153 
    154 with open("7.csv", "rb") as f:
    155     print(f.read())
    156     # b'A,B,",",5
    E,F,"""""""",6
    '
    157 
    158 with open("7.csv", "r") as f:
    159     print(f.read())
    160     # A,B,",",5
    161     # E,F,"""""""",6
    162 
    163 
    164 # 8、读取csv文件
    165 csv.register_dialect('mystyle', delimiter=',', quoting=csv.QUOTE_MINIMAL)
    166 with open('7.csv', newline='') as f:
    167     reader = csv.reader(f, 'mystyle')
    168     for r in reader:
    169         print(r, type(r))
    170         # ['A', 'B', ',', '5'] <class 'list'>
    171         # ['E', 'F', '"', '6'] <class 'list'>
    172 
    173 
    174 # 9、读取csv文件
    175 for row in csv.reader(['one, two, three', 'one, two, three'], skipinitialspace=True):  # skipinitialspace忽略空格
    176     print(row, type(row))
    177     # ['one', 'two', 'three'] <class 'list'>
    178     # ['one', 'two', 'three'] <class 'list'>
    179 
    180 
    181 # 10、DictWriter
    182 with open('8.csv', 'w', newline='') as csv_file:
    183     fieldnames = ['first_name', 'last_name']
    184     writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
    185 
    186     writer.writeheader()
    187     writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
    188     writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
    189     writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})
    190     writer.writerows([{'first_name': 'Wonderful', 'last_name': 'Spam'}, {'first_name': 'Wonderful', 'last_name': 'Spam'}])
    191 
    192 # 11、DictReader
    193 with open('8.csv', newline='') as csv_file:
    194     reader = csv.DictReader(csv_file)
    195     for row in reader:
    196         print(row)  # OrderedDict([('first_name', 'Baked'), ('last_name', 'Beans')])
    197         print(row['first_name'], row['last_name'])
  • 相关阅读:
    注册tomcat为服务
    BootStrap
    Passive DNS
    一个插件平台
    HDU 4394 BFS
    设计模式--组合模式--商品排序案例
    Windows平台编译openssl-0.9.8k库(32位、64位)
    JavaScript之this释疑
    OpenLayers3基础教程——OL3 介绍control
    我的Android进阶之旅------&gt; Android为TextView组件中显示的文本加入背景色
  • 原文地址:https://www.cnblogs.com/gundan/p/8303695.html
Copyright © 2011-2022 走看看