• Python文件操作(读写Excel)


    文件读写Excel

    1.使用xlrd读取excel

    #使用xlrd读取excel
    #1.导入模块
    import xlrd
    # 2. 使用xlrd的函数打开本地文件
    workbook=xlrd.open_workbook('案例.xlsx')
    #3. 获取工作表
    # sheets=workbook.sheets()#获取所有工作表组成list,具体某个表用下标
    # sheetOne=sheets[0]
    
    # sheetOne=workbook.sheet_by_index(0)#使用函数通过int 获取第几张
    
    # 返回工作表名称组成的列表
    sheetNames=workbook.sheet_names()
    sheetOne=workbook.sheet_by_name(sheetNames[0])
    # 行数
    row=sheetOne.nrows
    # 列数
    col=sheetOne.ncols
    # 用for遍历行数,输出每行
    for i in range(row):
        each_row=sheetOne.row_values(i)
        print(each_row)
    # 用for 遍历列 数,输出每列
    for i in range(col):
        each_col=sheetOne.col_values(i)
        print(each_col)
    # 精确到单元格
    # 尝试输出第二行,第二列的值,读取列表的方式
    print(sheetOne.row_values(1)[1])
    # sheetOne.cell(row,col) 获取单元格
    # 单元格.value 是值
    # sheetOne.cell_value(row,col)直接返回值
    print(sheetOne.cell(8,1).value)
    print(sheetOne.cell_value(8,1))
    

    image-20200917193820674

    # 用循环 输出所有单元格的内容
    # 方法一
    # for i in range(row):
    #     eachrow=sheetOne.row_values(i)
    #     for each in eachrow:
    #         print(each)
    # 方法二
    for i in range(row):
        for j in range(col):
            print(sheetOne.cell_value(i,j))
    

    image-20200917200509360

    2.使用xlwt模块写入excel

    # 导入xlwt模块
    import xlwt
    # 创建工作簿
    wb=xlwt.Workbook()
    #创建工作表
    sheet=wb.add_sheet('newSheet')
    for i in range(1,10):
        for j in range(1,i+1):
            sheet.write(i,j-1,str(j)+'x'+str(i)+'='+str(i*j))
    # 保存文件
    wb.save('newExcel.xls')
    

    image-20200917204250254

    3.使用xlutils模块修改excel

    # 使用xlutils模块修改 excel
    import xlrd
    from xlutils.copy import copy
    # xlrd 读取工作簿
    wb=xlrd.open_workbook('案例.xlsx')
    # 复制一份工作簿,用来写入
    copyed=copy(wb)
    # 获取复制来的 工作簿的工作表
    sheetOne=copyed.get_sheet(0)
    # 使用writr()写入
    sheetOne.write(3,0,'我是更改的内容')
    # 保存,如果保存的文件名存在则覆盖,不存在则保存个新的
    copyed.save('new新存的.xls')
    

    4.使用openpyxl操作excel

    #使用openpyxl操作excel
    from openpyxl import Workbook
    # 1. 实例化对象,创建工作簿
    wb=Workbook()
    # 2. 使用第一张工作表
    sheet=wb.active
    # 3. 给表取个名字
    sheet.title='表的名称1'
    # 4. 给表增加内容:sheet.append(list类型)
    sheet.append([1,2,3])
    # 5.保存工作簿
    wb.save('new1.xlsx')
    

    image-20200917205940919

    5.工作簿属性与方法

    from openpyxl import Workbook # 创建 新的 工作簿
    from openpyxl import load_workbook # 打开已有工作簿
    # wb = load_workbook('new1.xls') 打开不了 xls 的文件
    wb = load_workbook('F:Python资料data.xlsx')
    '''
    workbook 的属性:
    workbook.sheetnames : 所有工作表的名字 组成的列表
    workbook.worksheets : 所有工作表 组成的列表
    workbook.active : 默认的工作表(第一张)
    workbook 的方法:
    workbook.get_sheet_names() : 同 workbook.sheetnames
    workbook.get_active_sheet() : 同 workbook.active
    workbook.get_sheet_by_name(name): 根据name获取 sheet
    workbook.create_sheet(sheetname,index) : 创建sheet,以及名称与index位置
    workbook.save(filename) : 保存
    '''
    sheet = wb.create_sheet('新的',2)
    sheet.append([1,2,3])
    wb.save('data.xlsx')
    

    6.工作表属性与方法(上)

    from openpyxl import load_workbook
    wb = load_workbook('data.xlsx')
    # 获取表格 wb[ 'sheetname' ]
    sheet = wb['新的']
    '''
    工作表的属性:
    sheet.rows :行数对象
    sheet.columns :列数对象
    sheet.max_row :有效的最大行数
    sheet.min_row :有效的最小行数
    sheet.max_column:有效的最大列数
    sheet.min_column:有效的最小列数
    sheet.values :所有单元格的值组成的2维列表。每行是一个元组
    sheet.title :表的名称
    '''
    

    7.工作表属性与方法(下)

    '''
    方法: sheet.cell(row=1,column=1) 获取单元格 .从1开始计数
    '''
    # print(list(sheet.rows))
    print(sheet.max_row)
    print(sheet.min_row)
    print(list(sheet.values))
    print(sheet.cell(2,2).value) # 读取1
    print( sheet['b2'].value ) # 也是1
    # 获取单元格还可以 直接 sheet['C4']
    sheet['C4'].value = '炸弹'
    sheet['C'+str(4)].value = '炸弹'
    for i in range(1,11):
    sheet['A'+str(i+1)].value = i*10
    wb.save('data.xlsx')
    

    9.什么是json文件

    什么是 json 文件
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于
    ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C
    语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON
    成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提
    升网络传输速率)
    Json模块提供了四个功能:dumps、dump、loads、load
    dumps把数据类型转换成字符串
    dump把数据类型转换成字符串并存储在文件中
    loads把字符串转换成数据类型
    load把文件打开从字符串转换成数据类型
    

    10.常用文件及目录操作

    os 模块提供了非常丰富的方法用来处理文件和目录。
    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
    os.curdir 返回当前目录: ('.')
    os.pardir 获取当前目录的父目录字符串名:('..')
    os.makedirs('dirname1/dirname2') 可生成多层递归目录
    os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove() 删除一个文件
    os.rename("oldname","newname") 重命名文件/目录
    
  • 相关阅读:
    Axis2、Axis1 以及其他接口的调用方式
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
    百度、谷歌、雅虎网站地图提交地址
    MyEclipse 死掉,JVM terminated. Exit code=1073807364
    有关Servlet的面试题
    SpringMVC文件的上传与下载实现
    Java API 操作HBase Shell
    Java内存模型与线程(二)线程的实现和线程的调度
    Java内存模型与线程(一)
    ubuntu环境下搭建Hadoop集群中必须需要注意的问题
  • 原文地址:https://www.cnblogs.com/James-221/p/13687855.html
Copyright © 2020-2023  润新知