【2】文件读写-2-6-python读写csv--csv

  逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。 python中我们可以通过csv模块来读写该文件。The csv module’s reader and writer objects read and write sequences. Programmers can also read and write data in dictionary form using the DictReader and DictWriter classes.

一 读取csv文件

#code: utf-8
import csv
from itertools import islice
def Read_csv_file(input_name):
  csvfile=file("temp/%s.csv"%input_name,'rb')
  reader=csv.reader(csvfile)
  for line in islice(reader,16,None): #从第16行开始读取
  print line
csvfile.close()

csv_file=file("result/%s.csv"%result_name,'wb')
writer=csv.writer(csv_file)
new_list=[]
new_list.append("Name")
for k1 in range(len(target_snp)):
   new_list.append(target_snp[k1])
new_list.append("Sex")
new_list.append("Result")
new_list.append("Call")
new_list.append("no_call")
new_list.append("note")
writer.writerow(new_list)
csv_file.close()

二、写文件

csvfile = file('csv_test.csv', 'wb')
#writer = csv.writer(csvfile)
writer=csv.writer(csv_file,<span style="color: #ff0000;">lineterminator='\n'</span>)  #csv默认的换行符为“\r\n”,在linux系统下#需要给他重新制定;delimiter可以修改默认的分列符,
writer.writerow(['姓名', '年龄', '电话']) #这是个list哦
data = [
 ('小河', '25', '1234567'),
 ('小芳', '18', '789456')
]
writer.writerows(data)
csvfile.close()

wb中的w表示写入模式,b是文件模式 写入一行用writerow 多行用writerows

三、DictReader and DictWriter

后续再补充

四、中文的处理

在Linux下面用python进行数据处理,然后输出为csv格式,如果没有中文一切正常,但是如果有中文,就会出现乱码的问题,本篇将讲述怎么处理这个问题

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import csv
import codecs
with open('test.csv', 'wb') as csvfile:
	csvfile.write(codecs.BOM_UTF8)
	spamwriter = csv.writer(csvfile, dialect='excel')
	spamwriter.writerow(['测试'] * 5 + ['Baked Beans'])
	spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

参考资料:

官网: https://docs.python.org/2/library/csv.html#module-csv

http://blog.csdn.net/lixiang0522/article/details/7755059

http://www.cnblogs.com/sislcb/archive/2008/12/15/1355481.html

http://www.zphj1987.com/2016/09/28/Python%E7%94%9F%E6%88%90csv%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/

这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn