python处理csv文件

一、python读取csv文件内容

reader(csvfile, dialect='excel', **fmtparams)

参数说明:

csvfile必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对象,打开时需要加"b"标志参数。
dialect编码风格,默认为excel的风格,也就是用逗号(,)分隔,dialect方式也支持自定义。
fmtparam格式化参数,用来覆盖之前dialect对象指定的编码风格。

读取上述csv文件,代码如下:

import csv


file = open(r'C:\DATA\test\selenium_test\test_python\user_csv.csv','rb')
lines = csv.reader(file)
title_list = ['name','pwd']
user_list = []
for user in lines:
    zip_object = zip(title_list,user)
    user_dict = dict(zip_object)
    user_list.append(user_dict)    # 得到了由多个用户名密码组成的字典的列表,供后续使用
print(user_list)     #[{'name': 'zxf', 'pwd': '123'}, {'name': 'nsf', 'pwd': '456'}, {'name': 'jzz', 'pwd': '789'}]

二、python写入csv文件内容

writer(csvfile, dialect='excel', **fmtparams)

参数意义同上。

import csv


file = open(r'C:\DATA\test\selenium_test\test_python\user_csv.csv','w',newline='') # 文件不存在,会自动新建;文件存在,则会清空后再写入
# open时如果不指定newline='',则每写入一行将有一空行被写入
lines = csv.writer(file)
user_list = [{'name': 'zxf', 'pwd': '123'}, {'name': 'nsf', 'pwd': '456'}, {'name': 'jzz', 'pwd': '789'}]
for row in user_list:
lines.writerow(row.values()) # 字典的值写入csv文件内 writerow()方法是一行一行写入,writerows方法是一次写入多行

写入结果如下:



发现这是和打开方式有关,将打开的方法改为wb即可,代码如下:

with open(os.path.join(outpath,'result.csv'),'wb') as cf:
        writer = csv.writer(cf)
        writer.writerow(['shader','file'])
        for key , value in result.items():
            writer.writerow([key,value])



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值