zoukankan      html  css  js  c++  java
  • python对csv文件读写的两种方式 和 读写文件编码问题处理

    '''
    如果文件读取数据出错,可以考虑加一个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默认为'
    ',意思就是每写入一条数据就会多一个换行
        # 如果这里编码出错,可以指定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默认为'
    ',意思就是每写入一条数据就会多一个换行
        # 如果这里编码出错,可以指定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
    
    '''
  • 相关阅读:
    反射,Expression Tree,IL Emit 属性操作对比
    vue2.0 创建项目
    vue-cli3.0 Typescript 项目集成环信WebIM 群组聊天
    vue-property-decorator vue typescript写法
    TypeScript中是使用强类型函数作为参数
    应用监控与管理Actuator
    ES数据库下载安装
    删除SDE用户报ORA-00604 ORA-21700
    ArcGIS中的WKID
    改变您的HTTP服务器的缺省banner
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/13426471.html
Copyright © 2011-2022 走看看