[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]
by: 发表于:2017-09-30 10:35:54 顶(0) | 踩(0) 回复
??
回复评论