• 15 -python之文件操作


    csv文件读写操作

    一、什么是csv文件

    csv文件叫做逗号分隔值文件,每一行内容都是通过逗号来区分不同列

    csv文件可以直接通过Excel打开,以行列的形式保存和显示数据,但是csv不能存储方法和函数

    二、csv读操作

    1、打开csv文件—open手动关闭文件
    1.1 方式1
    文件对象.open()
    文件对象.close()
    
    • 1
    • 2
    1.2 方式2—with open 自动关闭文件
    with open() as 文件对象:
        操作文件
    
    • 1
    • 2
    2、创建reader对象,获取文件内容
    csv.reader(文件对象)  --   获取文件内容返回一个迭代器,并且以列表为单位返回每一行内容
    csv.Dictreader(文件对象)  --  获取文件内容返回一个迭代器,并且以字典为单位返回第二行开始的每一行内容(字典的键是第一行内容)
    
    • 1
    • 2
    示例
    # 示例 获取文件中每个地区的平均薪资 --老师版本
    from  re import findall
    with open('file2/lagou.csv','r',encoding='utf-8') as file:
        reader=csv.DictReader(file)
        # 处理数据
        cities={}
        for job in reader:
            c=job['city']
            m=job['salary']
    		# 利用正则表达式获取到薪资区间
            result = findall(r'(\d+)k-(\d+)k', m)
            # 没有给出薪资则继续下一次循环
            if not result:
                continue
            # 得到的结果是元组
            start,end=result[0]
            # 每次城市不同时  会产生一个新的列表
            moneys = cities.get(c, [])
            moneys.append((int(start)+int(end))/2)
            # print(moneys)
            cities[c]=moneys
        for key in cities:
            print(key,round(sum(cities[key])/len(cities[key]),2))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    3、csv文件写操作
    3.1 打开文件
    f=open(文件路径,'w',encoding='utf-8',newline='') # newline=''  在写入内容的时候不会隔行
    
    • 1
    3.2创建writer对象,写入数据
    方法作用用法
    csv.writer(文件对象)创建writer对象 这个对象在写入数据的时候一行对应一个列表
    csv.DictWriter(文件对象,键列表)创建writer对象,字典为单位写入数据

    方法1:

    # a. 以列表为单位写入一行内容
    writer=csv.writer(f)
    # 一次写入一行内容
    writer.writerow(['姓名','年龄','性别'])
    # 一次写入多行内容
    writer.writerows([
        ['小花',18,'女'],
        ['张三',19,'男']
    ])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    方法2:

    # b.以字典为单位写入一行内容
    writer=csv.DictWriter(f,['姓名','年龄','性别'])
    # 写入文件头
    writer.writeheader()
    # 一次写入一行内容
    writer.writerow({'姓名':'小兰','年龄':20,'性别':'女'})
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Excel文件操作

    一、认识Excel文件

    工作簿:一个Excel文件就是一个工作簿

    工作表:一个工作簿中可以有多个工作表(至少一个)

    单元格:单元格是Excel文件保存数据的基本单位

    行号和列号:可以确定单元格位置

    二、Excel读操作

    1、打开Excel文件创建工作簿对象
    方式1方式2
    import openpyxl
    workbook=openpyxl.open(excel文件路径)
    workbook=openpyxl.load_workbook(excel文件路径)
    2、获取工作表
    方式1方式2
    工作簿对象.active 工作簿对象[工作表名称]
    获取活跃表,关闭文件之前选中的表获取指定名字对应的工作表
    3、获取单元格
    工作表对象.cell(行号,列号)
    cell1=sheet2.cell(9,2)
    
    • 1
    • 2
    4、获取单元格内容
    单元格.value
    print(cell1.value)
    
    • 1
    • 2
    5、获取最大行号和列号
    工作表对象.max_row    工作表对象.max_column
    
    • 1

    三、Excel文件写操作

    注意:不管以什么的样方式对Excel进行操作,必须保存,否则无效

    1、新建工作簿
    1.1 新建工作簿对象
    工作簿对象=openpyxl.Workbook()
    
    • 1
    import openpyxl
    workbook=openpyxl.Workbook()
    
    • 1
    • 2
    1.2 保存
    工作簿对象.save(文件路径)
    
    • 1
    import openpyxl
    workbook=openpyxl.Workbook()
    workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    1.3 实际工作中
    # 方法1
    import openpyxl
    try:
        workbook = openpyxl.open('file2/students.xlsx')
    except FileNotFoundError:
        workbook = openpyxl.Workbook()
        workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    # 方法2
    import os
    import openpyxl
    # os.path.exists(文件路径) -- 判读那文件是否存在,存在则返回True,不存在则返回False
    if os.path.exists('file2/students.xlsx'):
        workbook = openpyxl.open('file2/students.xlsx')
    else:
        workbook = openpyxl.Workbook()
        workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    2、工作表的写操作

    2.1 工作表的写操作

    工作簿对象.create_sheet(表名,下标)
    
    • 1
    import openpyxl 
    workbook = openpyxl.open('file2/students.xlsx')
    workbook.create_sheet('python',0)
    workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    2.2 实际工作中
    if 'python' in workbook.sheetnames:
        sheet = workbook['python']
    else:
        workbook.create_sheet('python')
        workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    2.3 删除工作表
    工作簿对象.remove(工作表对象)
    
    • 1
    import openpyxl 
    workbook = openpyxl.open('file2/students.xlsx')
    workbook.remove(workbook['Sheet'])
    workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    2.4 实际工作中
    if 'Sheet' in workbook.sheetnames:
        workbook.remove(workbook['Sheet'])
        workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    2.5 单元格的写操作
    单元格对象.value=数据
    
    • 1
    python_sheet = workbook['python']
    python_sheet.cell(1, 3).value = '电话'
    python_sheet.cell(2, 1).value = 'ewqewrq'
    workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    3、总体流程
    import openpyxl
    # 新建工作簿对象
    try:
        workbook = openpyxl.open('file2/students.xlsx')
    except FileNotFoundError:
        workbook = openpyxl.Workbook()
        workbook.save('file2/students.xlsx')
    # 新建表
    if 'python' in workbook.sheetnames:
        sheet = workbook['python']
    else:
        workbook.create_sheet('python')
        workbook.save('file2/students.xlsx')
    # 删除
    if 'Sheet' in workbook.sheetnames:
        workbook.remove(workbook['Sheet'])
        workbook.save('file2/students.xlsx')
    # 操作单元格
    python_sheet = workbook['python']
    python_sheet.cell(1, 3).value = '电话'
    python_sheet.cell(2, 1).value = 'ewqewrq'
    workbook.save('file2/students.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    虚拟环境

    1、系统环境

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

    2、虚拟环境

    程序员根据自己的需要自己创建的python环境

    能够创建虚拟环境的前提:存在系统环境

    3、环境的作用
    • 提供python的解释器
    • 提供第三方库

    虚拟环境的存在可以让第三方库根据类别或者项目分开管理

    4、使用虚拟环境的建议
    • 工作的时候:一个项目一个虚拟环境 并且将虚拟环境直接方法项目中
    • 学习的时候:一类项目一个虚拟环境,不同的类别的虚拟环境全部放在一个地方。
    5、怎么创建虚拟环境
    • 使用pycharm创建

      pycharm-file-settings-Project-Python Interperter--点击下拉框切换位置
      
      • 1
    • 使用指令创建

      import openpyxl
      
      • 1
  • 相关阅读:
    小程序怎样进行本地存储的读、写、删、清?
    基于Vue和Spring Boot的在线点餐系统设计与实现
    node编写服务器
    C++STL的迭代器(iterator)
    目标检测算法——收藏|小目标检测的定义(一)
    SpringCloud复习:(6)feign整合hystrix
    1024程序员节特辑:【Spring Boot自动配置原理揭秘】
    谷粒商城一
    批量差异分析 批量findmarkers
    计组_cpu的结构和工作流程
  • 原文地址:https://blog.csdn.net/qq_44087994/article/details/126273245