csv文件操作

1.python2中:

import csv

infos = [
['peter','male'],
['marry','female'],
['johon','male'],
['rose','female'],
['mike','male']
]

#写入 with open(
'infos.csv','wb') as f: csvout = csv.writer(f) csvout.writerows(infos)
#读取 with open(
'infos.csv','rb') as f:
csvin
= csv.reader(f) data = [row for row in csvin]

  with open('infos.csv','r') as f:
      csvin = csv.reader(f)
    for row in csvin:
          print 'name:%s,gender:%s' %(row[0],row[1])

  

效果:

 注意: 读取和写入都是以二进制的方式,才能保证没有空行

with open('infos.csv','wb') as f:
    csvout = csv.DictWriter(f,fieldnames=['name','gender'])
    csvout.writeheader()
    csvout.writerows(infos)

with open('infos.csv','rb') as f:
    csvin = csv.DictReader(f)
    data = [row for row in csvin]

with open('infos.csv','r') as f:
    csvin = csv.DictReader(f,fieldnames=['name','gender'])
    for row in csvin:
      print 'name:%s,gneder:%s' %(row['name'],row['gender'])

但是,在python3中writerow CSV文件多一个空行,如图:

解决方法:

打开文件时指定换行符为""(空字符)

#打开文件时候,指定换行符为""
with open('infos.csv','w',newline='') as f:
    csvout = csv.writer(f)
    csvout.writerows(infos)
原文地址:https://www.cnblogs.com/hupeng1234/p/6656674.html