700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python中csv模块读写文件

python中csv模块读写文件

时间:2024-01-05 13:32:39

相关推荐

python中csv模块读写文件

一、csv模块读文件

1.csv.reader–可迭代对象

通过索引获取文档内容

def csv_read():file = open('./txt/names.csv','r')reader = csv.reader(file)head = next(reader)print(head)for line in reader:print('{}:{} -- {}:{}'.format(head[0],line[0],head[1],line[1]))

输出

['first_name', 'last_name']first_name:Wonderful -- last_name:Spamfirst_name:Lovely -- last_name:Spamfirst_name:Baked -- last_name:Beans

2.csv.reader的namedtuple

def csv_read_nametuple():'''namedtuple 可通过属性访问'''file = open('./txt/names.csv', 'r')reader = csv.reader(file)head = next(reader)print(head)# 构建一个namedtuple的模板from collections import namedtupleRow = namedtuple('Rom',head)print(Row)for r in reader:row = Row(*r)# 读取的csv中每一行的内容,实例化Row模板# 通过属性访问print('{}:{} -- {}:{}'.format(head[0],row.first_name,head[1],row.last_name))

输出同上

3.csv.DictReader以字典的形式读取

获取表头reader.fieldnames

def csv_read_dict():file = open('./txt/names.csv', 'r')reader = csv.DictReader(file)fieldname = reader.fieldnames# 获取表头for r in reader:print('{}:{} -- {}:{}'.format(fieldname[0], r['first_name'],fieldname[1], r['last_name']))

输出同上

二、csv模块写文件

1. 单个属性写入csv.writer

import csvdef csv_write():fw = open('./txt/charater2number.csv','w',newline='',encoding='utf-8')write = csv.writer(fw)number = range(65, 70)char = list(map(chr, number))for i in range(len(char)):write.writerow([char[i],number[i]])#if __name__ == '__main__':csv_write()

不设置newline时,默认是\n

3. 元组形式写入csv.Writer

def write_tuple():file = open('./txt/person information.csv','w',encoding='utf8',newline='')head = ['ID','Name','Gender']rows = [(1,'Amy','F'),(2,'Tommy','M'),(3,'Blair','F'),]writer = csv.writer(file)writer.writerow(head)#写入表头writer.writerows(rows) #写入主题内容,接收列表对象file.close()

2. 字典形式写入csv.DictWriter

写入的单行writer.writerow和多行writer.writerows

writer.writeheader()# 写入文件头

import csvdef csv_write_rows():with open('./txt/names.csv', 'w', newline='') as csvfile:fieldnames = ['first_name', 'last_name']writer = csv.DictWriter(csvfile, fieldnames=fieldnames)writer.writeheader()# 写入文件头# 单行写入# writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})# writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})# writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})# 多行写入writer.writerows([{'first_name': 'Wonderful', 'last_name': 'Spam'},\{'first_name': 'Lovely', 'last_name': 'Spam'}, \{'first_name': 'Baked', 'last_name': 'Beans'}])if __name__ == '__main__':csv_write_rows()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。