10-python-bas

Python基础

io-excel:

Excel扩展名:xlsx  cell:单元格
Excel表格(能够对Excel表格进行读数据、取数据就行)

1. Excel表格相当于一个二维数组
2. 将数据放在Excel中
3. 保存数据的步骤:
    1. 新建excel文件(一个总的Excel)
    2. 新建工作簿(里面写数据的Excel表格)
    3. 往里面添加数据(以列表的形式添加)(要存放的数据:data,是一个二维数组)
    4. 全部填写完,一次性的把数据全部保存到Excel表中
4. 取数据的步骤
    1. (u"data.xlsx")=> u:表示里面的数据类型是UTF-8的
    2. 获取Excel文件
    3. 获取工作簿
    4. 获取工作簿中的单元格
5. 如果不能切片、不能使用索引,就转化成数组
  1. 读写数据

    读写数据

    1. 安装 openpyxl

          pip install openpyxl
      
    2. 打开文件

          from openpyxl import load_workbook
      
          from openpyxl.writer.excel import ExcelWriter
      
          try:
              workbook_ = load_workbook(u"data.xlsx")
              # 获得表单名字
              sheetnames = workbook_.get_sheet_names()
      
              sheet = workbook_.get_sheet_by_name(sheetnames[0])
          except Exception as ex:
              print(ex)
      
      
    3. 获取单元格

          # 获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行
          b4 = sheet['A4']  #A行4列
      
          # 除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B4
          b4_too = sheet.cell(row=4, column=2)
          print(b4_too.value)
      
      
          for i in range(2):
              for j in range(5):
                  print(sheet.cell(row=i+1, column=j+1).value,end=' ')
              print()
      
    4. 获得最大行和最大列

          # 获得最大列和最大行
          print(sheet.max_row)
          print(sheet.max_column)
      
      
      
    5. 获取行和列

          sheet.rows为生成器, 里面是每一行的数据,每一行又由一个tuple包裹。
          sheet.columns类似,不过里面是每个tuple是每一列的单元格。
      
          # 因为按行,所以返回A1, B1, C1这样的顺序
          for row in sheet.rows:
              for cell in row:
                  print(cell.value)
      
          # A1, A2, A3这样的顺序
          for column in sheet.columns:
              for cell in column:
                  print(cell.value)
      

      上面的代码就可以获得所有单元格的数据。如果要获得某行的数据呢?给其一个索引就行了,因为sheet.rows是生成器类型,不能使用索引,转换成list之后再使用索引,list(sheet.rows)[2]这样就获取到第三行的tuple对象。

          for cell in list(sheet.rows)[2]:
              print(cell.value)
      
    6. 切片获取

      还可以像使用切片那样使用。sheet[‘A1’:‘B3’]返回一个tuple,该元组内部还是元组,由每行的单元格构成一个元组。

          for row_cell in sheet['A1':'B3']:
              for cell in row_cell:
                  print(cell)
      

    写入数据

    1. 完整案例

          from openpyxl import Workbook
      
          from openpyxl import load_workbook
      
          from openpyxl.writer.excel import ExcelWriter
      
          try:
      
              #     新建工作表
              wb=Workbook()
              # 新建一个工作表,可以指定索引,适当安排其在工作簿中的位置
              sheet=wb.create_sheet('Data', index=1)  # 被安排到第二个工作表,index=0就是第一个位置
      
              # 删除某个工作表
              # wb.remove(wb)
              # del wb[sheet]
              # row = [1, 2, 3, 4, 5]
              # sheet.append(row)
              rows = [
                  ['Number', 'data1', 'data2'],
                  [2, 40],
                  [3, 40, 25],
                  [4, 50, 30],
                  [5, 30, 10],
                  [6, 25, 5],
                  [7, 50, 10111],
              ]
              for row in rows:
                  sheet.append(row)
              wb.save(r'新歌检索失败1477881109469.xlsx')
          except Exception as ex:
              print(ex)
      
  2. 面向对象(对象抽象成类)

    1. Instance:实例

    2. init(self,xx):
      self是指当前构造的对象,和this是一个性质,不是特质谁,是指当前特定时间内执行这个命令的对象

    3. 类包括属性和行为,属性和行为都需要进行封装

    4. 每个对象公共的属性写在类里

    5. 安全问题
      1. (双下划线)__+变量名=>写在类中公共的全局变量名变为类中的私有变量
      2. 安全性:需要保护的属性应该放在类中,变成私有变量,并将私有变量放在行为里
      3. 原因:如果属性放在类里作为公有的属性,在其他地方很容易就会被调出来
      但是如果是类中私有的,就只能在该类中,通过调用行为使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值