**
csv模块
**
CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。python内置了csv模块。
读入文件:
用b会省去很多麻烦
import csv
with open('C:/Users/elenawang/Desktop/try1.csv','rb') as myfile:
reader = csv.reader(myfile)
for line in reader:
print line
写文件:
with open('C:/Users/elenawang/Desktop/try2.csv','wb') as myfile1:
writer=csv.writer(myfile1)
writer.writerow([90,'wang',89])
writer.writerow([60,'li',59])
list1=[[66,89],[12,77]]
writer.writerows(list1)
结果生成try2文件
'w’表示写模式。
首先open()函数打开当前路径下的名字为’t.csv’的文件,如果不存在这个文件,则创建它,返回myFile文件对象。
csv.writer(myFile)返回writer对象myWriter。
writerow()方法是一行一行写入,writerows方法是一次写入多行。
注意:如果文件’try2.csv’事先存在,调用writer函数会先清空原文件中的文本,再执行writerow/writerows方法。
默认的情况下, 读和写使用逗号做分隔符(delimiter),用双引号作为引用符(quotechar),当遇到特殊情况是,可以根据需要手动指定字符, 例如:
import csv
with open('passwd', 'rb') as f:
reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)
for row in reader:
print row
上述示例指定冒号作为分隔符,并且指定quote方式为不引用。这意味着读的时候都认为内容是不被默认引用符(")包围的。quoting的可选项为: QUOTE_ALL, QUOTE_MINIMAL, QUOTE_NONNUMERIC, QUOTE_NONE.
有点需要注意的是,当用writer写数据时, None 会被写成空字符串,浮点类型会被调用 repr() 方法转化成字符串。所以非字符串类型的数据会被 str() 成字符串存储。所以当涉及到unicode字符串时,可以自己手动编码后存储或者使用csv提供的 UnicodeWriter
csv.register_dialect('mydialect',delimiter='|', quoting=csv.QUOTE_ALL)
上面一行程序自定义了一个命名为mydialect的dialect,参数只设置了delimiter和quoting这两个,其他的仍然采用默认值,其中以’|'为分隔符
参考资料:https://docs.python.org/2/library/csv.html
https://www.cnblogs.com/nisen/p/6155492.html