day09学习 PyhtonExcel文件操作、OS方法

OS模块

  • 使用OS模块读取文件夹中的文件名

    os.listdir(path) - 返回path指定的文件夹包含的文件文件夹的名字的列表

    import os
    
    file_list = os.listdir('./008-成都链家二手房数据')
    # file_list = os.listdir(r'C:\Users\86191\Desktop') (绝对路径)
    print(file_list)
    for i in file_list:
        if i[-4:] == '.csv':
            print(i)
    
    #!/usr/bin/python3
    
    import os, sys
    
    # 打开文件
    path = "/var/www/html/"
    dirs = os.listdir( path )		# 列表
    
    # 输出所有文件和文件夹
    for file in dirs:
      print (file)
    

Excel文件读写

微软的Excel,目前全球使用最多,WPS国内使用较多
后缀名:.xls.xlsx

  • .xls: excel 2007以前的文件后缀名。最多容纳256列16000+行数据 —>xlwtwlrd

  • .xlsx: excel 2007开始文件使用的后缀名。最多容纳16000+列1048567行数据 —> openpyxl
    excel 2007开始兼容xlsxlsx后缀名

python能够操作excel的模块:openpyxlxlsxwriterxlwtpandasxlrdwin32comxlutils

安装三方模块

windows:pip install xxx

mac、linux: pips install xxx

如何安装模块到虚拟环境:

  1. 激活虚拟环境
  2. (venv) --> 虚拟环境已经激活
    • 使用 ./venv/scripts/activate 进行虚拟环境激活
      • 报错:微软禁用了终端执行脚本的功能
      • 使用 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 解除禁用
    • 再次执行 ./venv/scripts/activate

查看已经安装过的模块:pip list(在终端输入)

Excel读写

  • 工作簿:一个excel文件就是一个工作簿 - workbook
  • 工作表:一个工作簿的多张表格 - sheet
  • 单元格:存储信息的方格 - cell

Excel 写 - xlsx

import openpyxl

# 1.新建一个excel文件
# 新建文件:openpyxl.Workbook()
file = openpyxl.Workbook() # 保存时才创建文件名
#如果文件存在:openpyxl.load_workbook(文件路径和文件名)

# 2.操作工作表
# 创建工作表对象:create_sheet(表名, 下标)
# 如果直接在工作簿最后追加工作表,下标参数不用写
file.create_sheet('学生成绩', 0)
file.create_sheet('学生成绩1')
# 查看工作簿中已经存在的工作表:sheetnames
print(file.sheetnames)

# 移除工作表:remove(表)  --> 表:工作簿对象[工作表]
file.remove(file['Sheet'])

# 从学生成绩工作表插入信息
# 方法一:使用cell(行号, 列号)定位单元格
# cell(行号, 列号)  -> 定位单元格
# value  -> 获取单元格内容
print(file['学生成绩'].cell(1, 1).value)        # None
file['学生成绩'].cell(1, 1).value = '姓名'
print(file['学生成绩'].cell(1, 1).value)
file['学生成绩'].cell(1, 2).value = '性别'
# 方法二:使用[列号行号]定位单元格
file['学生成绩']['AAA1'] = '姓名'
print(file['学生成绩']['AAA1'].value)
# 保存文件 
file.save('./学生成绩.xlsx')

csv文件数据写入xlsx

import os
import csv
import openpyxl

# 新建xlsx后缀文件
file = openpyxl.Workbook()
# 新建工作表
file.create_sheet('成都链家二手房数据汇总')
# -------------------------------------------------
# 从源数据文件读数据
# listdir():能够读取指定文件夹下的所有子文件
file_list = os.listdir('./008-成都链家二手房数据')
print(file_list)
# count作用:计数进行行号的递增
count = 0
for i in file_list:
    if i[-9:] == '二手房信息.csv' and i[:2] == '成都':
        f = open(f'./008-成都链家二手房数据/{i}', 'r', encoding='utf-8')
        read_data = csv.reader(f)
        for j in read_data:
            count += 1
            for x in range(0, len(j)):
                # 根据每一条数据长度判断写n列
                file['成都链家二手房数据汇总'].cell(count, x + 1).value = j[x]
        f.close()
# ---------------------------------
file.save('./成都链家二手房.xlsx')
print('数据写入完成')

Excel 读 - xlsx

import openpyxl

# max_row
# max_col
# 加载xlsx文件
file = openpyxl.load_workbook('./成都链家二手房.xlsx')
# 从工作簿中找工作表
ws = file['成都链家二手房数据汇总']
# max_row: 获取xlsx文件中最大行数
# print(ws)
rows = ws.max_row
# max_col: 获取xlsx文件中最大列数
col = ws.max_column
# 行
for i in range(1, rows + 1):
    # 列
    for j in range(1, col + 1):
        print(ws.cell(i, j).value)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值