美文网首页Python
[python 百日笔记] 第103课-Python 操作 Ex

[python 百日笔记] 第103课-Python 操作 Ex

作者: Silver_42ac | 来源:发表于2020-01-01 17:18 被阅读0次

    目前只写读部分的笔记,大家有兴趣可以去看详细的写部分,我这里只是综合各个方面资料简单总结;

    相关模块安装;

    pip install openpyxl  xlrd xlwt xlutils pandas
    

    openpyxl可以用来专门读写xlsx新格式,xlrd也可以读,只是有读取行数限制,行数异常多的;
    保存xlsx格式,xlwt 无法做到,可以用openpyxl保存;
    pandas 读取xls 也是依赖的xlrd

    import  pandas  as pd
    #读
    data = pd.read_excel('1.xlsx')
    返回为DataFrame 格式,用pandas的方法 提取就好
    

    xlrd

    # -*- coding: UTF-8 -*-
    import xlrd
    #excel  reader 缩写,只用来读取
    
    
    path="D:\\xxx\\脚本练习\\excel\\新建 Microsoft Excel 工作表.xlsx"
    #因为在windows 平台上操作,这里斜杠要加两个
    data = xlrd.open_workbook(path)
    #打开文件,获得data 对象->读取的excel 
    
    #xlrd 对象的方法
    #[1]# self.sheet_names()
    #返回类型:列表 list
    sheet_names = data.sheet_names()          #获取所有表名
    print(sheet_names)
    
    #输出['Sheet1', 'Sheet2'],自己故意新建了两个sheet,名字和我命名有关
    
    
    #[2] 获取某一个 sheet页面的内容
    
    #sheet = data.sheets()[index]              #根据索引获取表
    table = data.sheets()[0]
    #sheet = data.sheet_by_index(sheet_index)  #根据索引获取表
    table = data.sheet_by_index(0)
    #sheet = data.sheet_by_name(sheet_name)    #根据名字获取表
    table = data.sheet_by_name(u"Sheet1")
    
    
    #table 对象存储单页的表格
    #对象方法有
    #table.name  #名字
    #table.nrows #行
    #table.ncols #列
    
    #table.row_values(index)  #指定行
    #table.col_values(index)  #指定列
    
    #所有index 索引,都是从0开始数的
    #比如说从左上角,第一行则是table.row_values(0)
    
    
    #获取行数和列数
    nrows = table.nrows #行
    ncols = table.ncols #列
    print(nrows,ncols)
    print( u"表格: %s 共 %d 行 %d 列" % (table.name, table.nrows, table.ncols))
    
    #获取整行和整列的值(数组)
    table.row_values(1)#返回值为列表
    table.col_values(2)
    print(table.row_values(1))#输出第二行
    
    #返回的变量类型是列表['二', 2.0, 'Ⅱ']
    
    
    
    #获得单元格内容
    cell_A1 = table.cell(0,0).value
    cell_C4 = table.cell(2,2).value
    print(cell_A1)
    
    #分别使用行列索引
    cell_A1 = table.row(0)[0].value
    cell_A2 = table.col(1)[0].value
    
    #行列索引都用,获得精准位置
    table.cell_value(0, 1)
    # 获取并打印某个单元格的值
    print( "第一行第二列的值为:", table.cell_value(0, 1))
    
    
    
    #循环行,循环输出所有行,每行内容都是一个列表
    
    
    for rownum in range(table.nrows):
        print (table.row_values(rownum))
        # print ("+".join([str(i) for i in table.row_values(rownum)]))
        # print ("+".join(map(str,table.row_values(rownum))))
    
    
    
    

    有兴趣可以连接起来成为字符串

    for rownum in range(table.nrows):
        #print (table.row_values(rownum))
        print ("+".join([str(i) for i in table.row_values(rownum)]))
        print ("+".join(map(str,table.row_values(rownum))))
    

    方法参照来自这里
    python如何将一个全部为int的列表,转化为全部为str的列表

    实际上 [ str(i) for i in a ] 是一种迭代生成的list 的方法,里面其实是单行for 循环 的 特定固定写法;无需纠结,等同于

    a = [1,2,3,4,5]
    for i in a:
        str(i)
    

    之所以用[] 包括起来就是把返回的内容当做 list 的元素保存着,这个list 是一个匿名变量,它没有名字,需要存储给逼的变量

    a = [1,2,3,4,5]
    map(str, a)
    

    而 python 的 map(操作,来源列表list 或者元组tuple)
    操作部分,可以是任意操作,也可以是某个函数,这里 直接用了python 自带的 str 函数;
    map()函数返回的内容,就是把 来源列表,元组的里面的元素都转成了字符串类型的变量

    后面利用 "任意连接字符串",join(元素为字符串的列表或者元组);就完成了连接

    主要参考
    python 把list中的所有元素串起来变为字符串
    作者的脚本
    https://github.com/JustDoPython/python-100-day/tree/master/day-103

    其他参考:
    Python利用pandas处理Excel数据的应用
    python 把list中的所有元素串起来变为字符串
    python如何将一个全部为int的列表,转化为全部为str的列表

    相关文章

      网友评论

        本文标题:[python 百日笔记] 第103课-Python 操作 Ex

        本文链接:https://www.haomeiwen.com/subject/dhhgoctx.html