python读取csv格式_CSV文件的读取操作代码模板

这篇博客详细介绍了Python的csv模块,包括如何使用reader读取CSV文件,writer写入数据,以及DictReader和DictWriter的使用。示例代码展示了如何读取文件、写入多行数据以及解析CSV文件内容。此外,还提到了如何通过DictWriter处理字典类型的数据。
摘要由CSDN通过智能技术生成

[python]代码库import csv

#导入CSV模块库

#1---读取文件

# reader(csvfile[,dialect="excel"][,fmtparam])

# csvfile :需要是支持迭代(Iterator)的对象,并且每次调用next方法的返回值是字符串(string)

# 通常的文件(file)对象,或者列表(list)对象都是适用的,如果是文件对象,打开是需要加"b"标志参数。

# dialect : 编码风格,默认为excel方式,也就是逗号(,)分隔 另外csv模块也支持excel-tab风格,也就是制表符(tab)分隔。

# 其它的方式需要自己定义,然后调用register_dialect方法注册,list_dialects方法来查询已注册的所有编码风格列表

# fmtparam :格式化参数,用来覆盖之前dialect对象指定的编码风格。

csvfile = file('csv_test.csv', 'rb')

reader = csv.reader(csvfile) #读取文件

for line in reader:

print line

csvfile.close()

#2---向文件中写入数据

# writer(csvfile[, dialect='excel'][, fmtparam])

# writerow 写一行

# writerows 写多行

#例子2-1

writer = csv.writer(file("1.csv","wb")) #创建1.csv对象

writer.writerow(['c1', 'c2', 'c3'])

lines =[range(3) for i in range(5)]

for line in lines:

writer.writerow(line) #按行写入

# 例子2-2

csvfile = file('csv_test.csv', 'wb')

writer = csv.writer(csvfile)

writer.writerow(['姓名', '年龄', '电话']) #写入一行

data = [('张三', '25', '1234567'),('李四', '18', '789456')]

writer.writerows(data) #写入多行

csvfile.close() #关闭文件

# DictReader

# 同reader差不多,都是读取CSV用的,只不过会生成一个字典(dict)类型的返回,而不是迭代类型

# DictWriter

rows = [{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},

{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},

{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},

{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},

{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'}]

#这样就可以直接调用DictWriter.writerows方法来处理了:

fieldnames = ['Column1', 'Column2', 'Column3', 'Column4']

dict_writer = csv.DictWriter(file('your.csv', 'wb'), fieldnames=fieldnames)

dict_writer.writerow(fieldnames) # CSV第一行需要自己加入

dict_writer.writerows(rows) # rows就是表单提交的数据

# 解析文件

csvReader = csv.reader(open('avDecode_list.csv', 'rb')) #以只读方式取得csv文件中内容

for row in csvReader: #行循环

parameterStr = ','.join(row) #通过逗号连接每行每个单元格的内容

parameters = parameterStr.split(',') #得到每个单元格的内容

name = parameters[1] #将第一个单元格的内容赋值给name

component = parameters[2]

executiontype = parameters[3]

format = parameters[4]

inputFile = parameters[5]

mode = parameters[6]

201903221632.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值