• Python操作CSV和Excel


    概述

    csv是最通用的文件格式,本质是文本文件,用记事本即可打开。同一行中每个字段间用逗号分隔,在csv中显示的是在不同单元格中,在记事本中显示的是一行中用逗号分隔。

    xls是excel专用格式,是二进制文件,只有excel才能打开。

     

    CSV操作

    csv写入

    1.写入列表(list)数据

    使用 csv.writer 对象

    delimiter 指定同一行每个字段的分隔字符。若不指定,默认以英文逗号(,)分隔,在csv文件中显示的是不同单元格,若以其他符号分隔,则显示在csv同一单元格中

    import csv
    with open(r'e:zarten.csv', 'w', newline='') as csvfile:
        csv_writer = csv.writer(csvfile, delimiter=' ')
    
        csv_writer.writerow(['a', 'b', 'c'])
        csv_writer.writerow(['d', 'e', 'f'])

     

    2.写入字典(dict)数据

    使用 csv.DictWriter 对象

    import csv
    with open(r'e:zarten.csv', 'w', newline='') as csvfile:
        fieldnames = ['name', 'age']
        csv_writer = csv.DictWriter(csvfile, fieldnames= fieldnames, delimiter=' ')#csv中默认,分隔单元格,delimiter可以不指定
    
        csv_writer.writeheader()
        
        csv_writer.writerow({'name' : 'Zarten1', 'age' : 1})
        csv_writer.writerow({'name' : 'Zarten2', 'age' : 2})

     

    csv读取

    1.读取普通csv

    使用 csv.reader 对象

    import csv
    with open(r'e:zarten.csv', 'r', newline='') as csvfile:
        csv_reader = csv.reader(csvfile, delimiter= ' ')
        headers = next(csv_reader) #获取第一行,可能是头
        print(headers)
        for row in csv_reader:
            print(row)
            
    #输出结果:
    # ['name', 'age']
    # ['Zarten1', '1']
    # ['Zarten2', '2']

     

    2.读取字典(dict)csv

    使用 csv.DictReader 对象

    import csv
    with open(r'e:zarten.csv', 'r', newline='') as csvfile:
        csv_reader = csv.DictReader(csvfile, delimiter= ' ')
        for row in csv_reader:
            print(row['name'], row['age'])

     

    excel操作

    excel操作需要使用第三方库,这里推荐使用openpyxl

    官方文档: Tutorial - openpyxl 2.5.12 documentation

    安装

    pip3 install openpyxl

     

    excel写入

    import openpyxl
    
    file_path = r'e:zarten.xlsx'
    
    wb = openpyxl.Workbook()
    sheet = wb.active
    sheet.title = 'Zarten_info'
    
    headers = ['name', "age"]
    sheet.cell(1, 1, value=headers[0])
    sheet.cell(1, 2 ,value=headers[1])
    
    rows1 = ['Zarten1', 1]
    sheet.append(rows1)
    
    rows2 = ['Zarten2', 2]
    sheet.append(rows2)

     

    excel读取

    import openpyxl
    
    file_path = r'e:zarten.xlsx'
    
    wb = openpyxl.load_workbook(file_path)
    sheet = wb['Zarten_info']
    
    for row in sheet.rows:
        row_info = [row[0].value, row[1].value]
        print(row_info)
    
        for cell in row:
            print(cell.value)


    原文 https://zhuanlan.zhihu.com/p/54705476
  • 相关阅读:
    MySQL数据库备份
    执行SDK的aapt报错./aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./aapt)
    ftp删除目录和文件,目录下有文件删除提示【550 Remove directory operation failed.】
    Spring mvc接收中文参数值乱码(tomcat配置问题)
    python3获得命令行输入的参数
    Java反射、动态加载(将java类名、方法、方法参数当做参数传递,执行方法)
    java定义object数组(可以存储String或int等多种类型)
    java方法中增加不固定参数
    ibatis和myBatis打印sql语句的log4j配置文件
    spring依赖注入之手工装配
  • 原文地址:https://www.cnblogs.com/brady-wang/p/12522411.html
Copyright © 2020-2023  润新知