zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Nginx+PHP-FPM优化技巧总结
    基于php-fpm的配置详解
    Nginx中修改php.ini的上传设置upload_max_filesize的值
    nginx调用php-fpm出错解决方法和nginx配置详解
    LNMP笔记:php-fpm – 启动参数及重要配置详解
    nginx php-fpm安装手记
    C#使用Log4Net记录日志
    .NET中使用Redis (二)
    .NET中使用Redis
    SQL自定义函数split分隔字符串
  • 原文地址:https://www.cnblogs.com/brady-wang/p/12522411.html
Copyright © 2011-2022 走看看