• python 处理 excel,读取内容 openpyxl模块


    用python实现文件自动下载,我搜索了一些href链接,保存在excel里面,然后希望python能自动开机启动下载任务,然后读取excel的href链接,并且,自动下载,下载好以后,自动在excel记录下下载完毕的结果,如果没有完成,下次继续下载。我希望电脑能在我不在家的时候,自己去下载文件,不需要我自己点开来。并且下载目录让python自己创建,我只要指定保存的总文件路径。现在先实现从excel里面读取href连接的功能,使用第三方库openpyxl

    java/javascript/php/python都是能操作excel文件的,可以读取保存,但是javascript实现不了文件下载保存,其他都能实现,所以用哪个语言我觉得都是一样的。

    1.1 Python官方库操作excel

    Python官方库一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库复制和修改Excel文件,这三个库只支持到Excel2003。

    1.2 第三方库openpyxl介绍

    第三方库openpyxl(可读写excel表),专门处理Excel2007及以上版本产生的xlsx文件,xls和xlsx之间转换容易。 注意:如果文字编码是“gb2312” 读取后就会显示乱码,请先转成Unicode

    1.安装 cmd 运行命令行

    pip install openpyxl

    从网上下载的图片有logo的话还可以用python批量清除logo

     1.循环获取href地址

    import openpyxl
    
    wb = openpyxl.load_workbook('file/allhref.xlsx')
    
    sheets = wb.sheetnames
    # print(sheets, type(sheets))
    
    def getHref(ws):
        # print(ws['A'])
        for href in  ws['B']: 
            if href.value != 'href': {
                print(href.value)
            }
                
    
    for sheet in sheets:        # 循环表
       if(sheet == 'Sheet1'): getHref(wb[sheet])
            # wb[sheet]

    import openpyxl
    import urllib.request
    import time
    
    filePath = "F:/E/git/python-learn/writeExcel/download/"
    wb = openpyxl.load_workbook('file/allhref.xlsx')
    
    sheets = wb.sheetnames
    # print(sheets, type(sheets))
    
    def getHref(ws):
        # print(ws['A']) A一竖列
        #循环B数列
        for href in  ws['B']: 
            if href.value != 'href': {
                 dowload(href.value)
            }
    
             
    def dowload(url):
    
            response = urllib.request.urlopen(url)
            data = response.read()
            t = int(time.time() * 1000)
            name = filePath + '%d'%t+".jpg" //创建保存的文件名称
            with open(name, 'wb') as code:
                code.write(data)
          
    
    
    for sheet in sheets:        # 循环表
       if(sheet == 'Sheet1'): getHref(wb[sheet])
            # wb[sheet]

    保存文件为时间戳,时间戳转字符串

     t = int(time.time() * 1000)
    '%d'%t

    创建文件夹 依赖os模块

    os.mkdir(“test”)

    图片下载已经实现了,python不能用{ },包住代码块,写的真难受。

    import openpyxl
    import urllib.request
    import time
    import os
    
    filePath = "F:/download/" 
    #换成自己的下载目录地址
    wb = openpyxl.load_workbook('file/***.xlsx')
    #换成自己的exal目录
    
    sheets = wb.sheetnames
    # print(sheets, type(sheets)) 
    
    def getHref(ws):
        # print(ws['A']) A一竖列
        #循环B数列
        i = 0
        for href in  ws['B']: 
            name = (ws['A'][i].value)
            i = i + 1
            if href.value != 'href': 
                 dowload(href.value, name)
            
    
             
    def dowload(url, fileName):
            response = urllib.request.urlopen(url)
            data = response.read()
            t = int(time.time() * 1000)
            os.mkdir("download/"+fileName)//创建新的文件来保存特殊的文件
            name = filePath + '%d'%t+".jpg"
            with open(name, 'wb') as code:
                code.write(data)
    
    
    for sheet in sheets:        # 循环表
       if(sheet == 'Sheet1'): getHref(wb[sheet])
            # wb[sheet]

    sheet1表1的目录

    下面要支持对电影,pdf,迅雷的下载支持  和   对路径文件名称的自动匹配,保存成功对exal的保存,获取时间保存到overTime一行

  • 相关阅读:
    Android布局控件
    XAMPP里tomcat启动报错:Make sure you have Java JDK or JRE installed and the required ports are free
    poj 北京大学 2014研究生推免上机考试(校内)
    2014北大计算机学科保研直博夏令营上机poj考试
    《C++Primer》第四版学习笔记--持续更新中
    poj1986:Distance Queries
    poj2533:最长上升子序列
    poj1062:昂贵的聘礼
    黑书贪心例题之钓鱼 poj1042:Gone Fishing
    转:最小没出现的整数
  • 原文地址:https://www.cnblogs.com/chenyi4/p/12544582.html
Copyright © 2020-2023  润新知