python csv模块

2018-06-18 00:39:13来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

  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="\t"参数指写入的时候的分隔符
 27     # csv_writer = csv.writer(f, dialect="excel-tab")
 28     # csv_writer = csv.writer(f, dialect="excel", delimiter="\t")
 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"\r\n"E","F","""","6"\r\n'
 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="\t"参数指写入的时候的分隔符
 46     # csv_writer = csv.writer(f, dialect="excel-tab")
 47     # csv_writer = csv.writer(f, dialect="excel", delimiter="\t")
 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\r\nE,F,"""",6\r\n'
 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="\t"参数指写入的时候的分隔符
 66     # csv_writer = csv.writer(f, dialect="excel-tab")
 67     # csv_writer = csv.writer(f, dialect="excel", delimiter="\t")
 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\r\nE,F,\\",6\r\n'
 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="\t"参数指写入的时候的分隔符
 86     # csv_writer = csv.writer(f, dialect="excel-tab")
 87     # csv_writer = csv.writer(f, dialect="excel", delimiter="\t")
 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\r\n"E","F","""",6\r\n'
 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="\t"参数指写入的时候的分隔符
106     # csv_writer = csv.writer(f, dialect="excel-tab")
107     # csv_writer = csv.writer(f, dialect="excel", delimiter="\t")
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\r\nE,F,"""",6\r\n'
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="\t"参数指写入的时候的分隔符
126     # csv_writer = csv.writer(f, dialect="excel-tab")
127     # csv_writer = csv.writer(f, dialect="excel", delimiter="\t")
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\r\nE,F,"""",6\r\n'
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="\t"参数指写入的时候的分隔符
147     # csv_writer = csv.writer(f, dialect="excel-tab")
148     # csv_writer = csv.writer(f, dialect="excel", delimiter="\t")
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\r\nE,F,"""""""",6\r\n'
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'])

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:scrapy setting

下一篇:026json和pickle,xml模块