基础语言-第18天-csv、Excel文件操作

csv、Excel文件操作

一、csv文件操作

1.定义

csv文件叫逗号分割值文件:每一行内容通过逗号区分不同列。

csv文件可直接通过Excel打开,以行列的形式保存和显示数据,但相对Excel文件,只能存储数据,不能保存公式和函数。

2.csv文件读操作

  • 导入csv库

    import csv    
    
  • 打开文件

    open(csv文件路径, 'r', encoding='utf-8')
    
    可以不用手动关闭文件,文件操作结束就关闭文件。
    with open('files/data.csv', 'w', encoding='utf-8', newline='') as f:
     pass
    
  • 文件读操作

    1)csv.reader(文件对象):
    获取文件内容返回一个迭代器,以列表为单位返回每一行内容。
    2)csv.DictReader(文件对象):
    获取文件内容返回一个迭代器,以字典为单位返回第二行开始的每一行内容,第一行内容为字典的键,。
    
  • 关闭文件

    文件对象.close()
    
  • 总的读操作流程代码

    import csv    # 先导包
    
    # 1)创建打开csv文件
    f = open('files/电影.csv', 'r', encoding='utf-8', newline='')
    
    # 2)获取文件内容
    # (1)csv.reader(文件对象): 获取文件内容返回一个迭代器,以列表为单位返回每一行内容。
    # reader1 = csv.reader(f)
    # print(list(reader1))
    
    # (2)csv.DictReader(文件对象):获取文件内容返回一个迭代器,以字典为单位返回第二行开始的每一行内容,第一行内容为字典的键,。
    reader2 = csv.DictReader(f)
    print(list(reader2))
    
    # 3)关闭文件
    f.close()
    

3.csv文件写操作

  • 导入csv库

  • 打开文件

    open('files/data.csv', 'w', encoding='utf-8', newline='')
    
  • 文件写操作:创建writer对象

    1)csv.writer(): 创建writer对象,写入数据时一行对应一个列表。

    2)csv.DictWriter(): 创建writer对象,以字典为单位写入数据。

  • 关闭文件

    文件对象.close()
    
  • 总的代码

    with open('files/data.csv', 'w', encoding='utf-8', newline='') as f:
        # ===========列表写入==========
        # writer1 = csv.writer(f)
        # # 一次写入一行
        # writer1.writerow(['姓名', '出生日期', '性别', '年龄'])
        # writer1.writerow(['小明', '19990616', '男', 23])
        # # 一次写入多行内容
        # writer1.writerows([
        #     ['小明', '19990616', '男', 23],
        #     ['小花', '19991216', '女', 23]
        # ])
    
        # ===========字典写入==========
        writer2 = csv.DictWriter(f, ['姓名', '出生日期', '性别', '年龄'])
        # 将字典的键写入文件开头
        writer2.writeheader()
    
        # 一次写入一行内容
        writer2.writerow({'姓名': '小华', '出生日期': '19890101', '性别': '男', '年龄': 33})
    

二、虚拟环境

1.系统环境

安装python就可以为计算机提供一个python的系统环境。

2.虚拟环境

程序员根据自己需要创建的python环境。
能创建虚拟环境的前提:存在系统环境。

3.环境的作用

1)提供Python解释器
2)提供第三方库
虚拟环境可以让第三方库根据类别或者项目分开管理。

4.使用虚拟环境建议

1)工作时:一个项目一个虚拟环境,且将虚拟环境直接放在项目中。
2)学习时:一类项目一个虚拟环境,不同类别的虚拟环境放在一个地方。

5.创建虚拟环境

  • 使用pycharm创建(windows)

    file -> Settings -> Project -> Python Interpreter
    

    在这里插入图片描述
    点击红色方框的箭头下拉,点击show all
    在这里插入图片描述
    在这里插入图片描述
    最后点击OK就创建好了,使用这个虚拟环境可以将模块安装在这个环境里。

  • 使用指令创建

三、Excel文件操作

1.认识Excel文件

  • 工作簿:一个excel文件就是一个工作簿
  • 工作表:一个工作簿中可以有多个工作表(至少一个)
  • 单元格:单元格是excel文件保存数据的基本单位
  • 行号和列号:确定单元格位置

2.Excel文件读操作

  • 导入openpyxl库

    import openpyxl
    
  • 打开Excel文件创建工作簿对象

    openpyxl.open(excel文件路径)
    openpyxl.load_workbook(文件路径)
    
  • 获取工作表

    工作簿对象.active
    工作簿对象.['工作表名称']
    
  • 获取单元格

    工作表对象.cell(行号,列号)
    
  • 获取单元格内容

    单元格对象.value
    
  • 获取最大行号和最大列号(保存了数据的有效行和有效列)

    工作表对象.max_row
    工作表对象.max_column
    
  • 总的Excel文件读操作代码

    import openpyxl
    
    # 1)打开excel文件创建工作簿对象
    # workbook = openpyxl.open('files/三国人物数据.xlsx')
    workbook = openpyxl.load_workbook('files/三国人物数据.xlsx')
    
    # 获取工作簿中所有的工作表的表名
    result = workbook.sheetnames
    print(result)       # ['全部人物数据', '三个国家的武力', '三个国家武将的武力', '三国武将数据', '三国文官数据']
    
    # 2)获取工作表
    sheet1 = workbook.active    # 获取1
    print(sheet1)
    
    sheet2 = workbook['三国武将数据']    # 获取2
    print(sheet2)
    
    # 3)获取单元格
    cell1 = sheet2.cell(8, 1)
    cell2 = sheet2.cell(12, 1)
    print(cell1, cell2)
    
    # 4)获取单元格内容
    print(cell1.value)
    print(cell2.value)
    
    # 5)获取最大行号和最大列号(保存了数据的有效行和有效列)
    # 工作表对象.max_row
    # 工作表对象.max_column
    print(sheet2.max_row)
    print(sheet2.max_column)
    
    
    # 获取表中内容例子
    # 获取第一列所有数据
    column1 = []
    for row in range(1, sheet2.max_row+1):
        cell = sheet2.cell(row, 1)
        column1.append(cell.value)
    
    print(column1)
    
    # 获取第一列到第3列所有的数据
    for col in range(1, 4):
        column = []
        for row in range(1, sheet2.max_row+1):
            cell = sheet2.cell(row, col)
            column.append(cell.value)
        print(column)
    

3.Excel文件写操作

  • 导入openpyxl库

    import openpyxl
    
  • 新建工作簿:

    a.新建工作簿对象 - Workbook

    workbook = openpyxl.Workbook()
    

    注意:生活中实际: 实际新建工作簿需要先判断工作簿对应的文件是否已经存在,存在就不需要新建,不存在才新建。

  • 工作表操作

    a.创建工作表 - create_sheet

    工作簿对象.create_sheet(表名)
    

    注意:实际中的新建表:没有的时候才新建,有的时候直接打开

    b.删除工作表 - remove

    工作簿对象.remove(工作表对象)
    实际中的删除表:有的时候才删除
    
  • 单元格的写操作

    单元格对象.value = 数据
    
  • 保存文件

    工作簿对象.save(文件路径)
    
  • excel文件写操作总的流程代码

    import openpyxl
    
    # 1)新建工作簿
    # 方法一:异常捕获
    try:
        workbook = openpyxl.open('files/students.xlsx')
    except FileNotFoundError:
        workbook = openpyxl.Workbook()
        
    # 2)新建工作表
    # a.创建工作表
    # 实际中的新建表:没有的时候才新建,有的时候直接打开
    if 'Python' in workbook.sheetnames:
       sheet = workbook['Python']
    else:
       workbook.create_sheet('Python')
    
    # b.删除工作表
    # 实际中的删除表:有的时候才删除
    if 'Sheet1' in workbook.sheetnames:
        workbook.remove(workbook['Sheet1'])
    print(workbook.sheetnames)
    
    # 3)单元格的写操作
    # 单元格对象.value = 数据
    java_sheet = workbook['Java']
    java_sheet.cell(1,3).value = '电话'   # 增加
    java_sheet.cell(2,1).value = None   # 删除
    java_sheet.cell(2,2).value = 'stu003'    # 修改
    
    # 4)保存
    workbook.save('files/students.xlsx')
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值