首页 > 编程语言 > 详细

python对csv文件读写的两种方式 和 读写文件编码问题处理

时间:2020-08-03 15:57:40      阅读:81      评论:0      收藏:0      [点我收藏+]
‘‘‘
如果文件读取数据出错,可以考虑加一个encoding属性,取值可以是:utf-8,gbk,gb18030
或者加一个属性error,取值为ignore,例如
open(path, encoding=‘gb18030‘, errors=‘ignore‘)
‘‘‘
‘‘‘
1.csv数据为:
1,2,3
4,5,6
7,8,9

‘‘‘
import csv
def read_file1():
    with open(1.csv,r) as fp:
        # reader相当于一个迭代器
        reader = csv.reader(fp)
        # 使用next,那么就相当于把指针fp向下移动一行
        next(reader)
        for read in reader:
            print(read)

def read_file2():
    with open(1.csv,r) as fp:
        # 将csv的数据转化为字典,这个时候reader里面就不再包含第一行数据
        reader = csv.DictReader(fp)
        for read in reader:
            print(read[2])

read_file1()
‘‘‘
输出:
[‘4‘, ‘5‘, ‘6‘]
[‘7‘, ‘8‘, ‘9‘]
‘‘‘
read_file2()
‘‘‘
输出:
5
8
‘‘‘


def write_file1():
    header = [user, age]
    values = [
        (张三, 12),
        (李四, 13)
    ]
    # newline默认为‘\n‘,意思就是每写入一条数据就会多一个换行
    # 如果这里编码出错,可以指定encoding的值
    with open(2.csv,w,newline=‘‘) as fp:
        writer = csv.writer(fp)
        writer.writerow(header)
        writer.writerows(values)

write_file1()

def write_file2():
    header = [user, age]
    values = [
        {user:张三,age: 12},
        {user:李四,age:13}
    ]
    # newline默认为‘\n‘,意思就是每写入一条数据就会多一个换行
    # 如果这里编码出错,可以指定encoding的值
    with open(2.csv,w,newline=‘‘) as fp:
        writer = csv.DictWriter(fp,header)
        # 写入字典头
        writer.writeheader()
        # 将字典数据写入
        writer.writerows(values)

write_file2()

‘‘‘
两个函数执行后的结果一样,文件2.csv中数据为:
user,age
张三,12
李四,13

‘‘‘

 

python对csv文件读写的两种方式 和 读写文件编码问题处理

原文:https://www.cnblogs.com/kongbursi-2292702937/p/13426471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!