表格数据提取

本贴最后更新于 1386 天前,其中的信息可能已经事过境迁
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Time  : 2020/12/14 13:07
# @Author : cuijianzhe
# @File  : xlwt.py
# @Software: PyCharm

import openpyxl
import requests
import os
import random
name = input('请输入表格名称:')
path = name + '.xlsx'
wb = openpyxl.load_workbook(path)

sheetnames = wb.sheetnames #获取文件中所有的sheet
sheetData = wb[sheetnames[0]]  #第一个sheet的内容

rows_max = sheetData.max_row  #最大行数
cols_max = sheetData.max_column  #最大列数

ApprovalNumber = sheetData.cell(row = 1,column = 4).value
def get_case(): #获取所有表头功能
    case_list = []
    for cols in range(1,cols_max):  #列数
        cases = sheetData.cell(row=1,column=cols).value
        case_list.append(cases.replace('\n\n','\n'))
    return case_list

def generate_code(char):
    all_char = '0123456789qazwsxedcrfvtgbyhnujmikolpQAZWSXEDCRFVTGBYHNUJIKOLP'
    index = len(all_char) - 1
    code = ''
    for _ in range(int(char)):
        num = random.randint(0,index)
        code += all_char[num]
        res = ''.join(code)
    return res

def get_carNum():
    '''    提取并添加站点名称    '''
    # 第一个方法使用列表
    cars_list = [] #存储车牌号
    try:
        for cols in range(1,cols_max):
            carNum = sheetData.cell(row = 1,column = cols).value #每列的值
            if carNum == '车牌号':
                for rows in range(2,rows_max+1):  #遍历最大行数
                    carnumName = sheetData.cell(row = rows,column=cols).value
                    if carnumName != "":
                        cars_list.append(carnumName)
                    else:
                        cars_list.append("空车牌号在第%s行"%(rows))
    except Exception as error:
        print('get车牌号错误', 'error:{}'.format(error))
    return cars_list

def get_url(case_list):
    url_list = []

    for cols in range(1, cols_max):  # 列数
        datas = sheetData.cell(row=1, column=cols).value
        if datas == case_list:
            for rows in range(2,rows_max+1):
                images_url = sheetData.cell(row=rows, column=cols).value
                if images_url != "":
                    url_list.append(images_url.replace('\n\n','\n'))
                else:  #如果此单元格可能为空的话,添加自定义链接占位
                    url_list.append('https://file.cjzshilong.cn/pictures_file/guohui-e67e7b3b.png\n')
        else:
            continue
    return url_list

def Download(url,car_name):
    for num in range(len(car_name)):
        ApprovalNumber = sheetData.cell(row=num+2, column=1).value  # 订单编号
        name = car_name[num] #车牌目录
        name_dir = car_name[num] + '_' + ApprovalNumber #同车牌 不同订单 创建目录
        list_files = os.listdir('./')
        if name not in list_files:
            os.mkdir(name)
            os.chdir(name)
            os.mkdir(name_dir)
            os.chdir(name_dir)
            file_list = url[num].split('\n')
            with open('./统计' + name_dir + '_' + generate_code(4)  + '的图片url_共计' + str(len(file_list)) + '条.txt', 'w', encoding='utf-8') as f:
                f.write(url[num])

            for url_car in file_list:
                if url_car != '':
                    response = requests.get(url_car)
                    with open(name +'_'+ generate_code(15) + '.jpg', 'wb') as car:
                         car.write(response.content)
                    print('%s下载完毕' %name_dir)

            os.chdir('../../')
        else:
            namedir_list = os.listdir('./' + name)
            os.chdir(name)
            if name_dir not in namedir_list:
                os.mkdir(name_dir)
                os.chdir(name_dir)
                file_list = url[num].split('\n')
                with open('./统计' + name_dir + '_' + generate_code(4)  + '的图片url_共计' + str(len(file_list)) + '条.txt', 'w', encoding='utf-8') as f:
                    f.write(url[num])

                for url_car in file_list:
                    if url_car != '':
                        response = requests.get(url_car)
                        with open(name +'_'+ generate_code(15) + '.jpg', 'wb') as car:
                             car.write(response.content)
                        print('%s下载完毕' %name_dir)
                os.chdir('../../')
            else:
                os.chdir(name_dir)
                file_list = url[num].split('\n')
                with open('./统计' + name_dir + '_' + generate_code(4) + '的图片url_共计' + str(len(file_list)) +  '条.txt', 'w', encoding='utf-8') as f:
                    f.write(url[num])

                for url_car in file_list:
                    if url_car != '':
                        response = requests.get(url_car)
                        with open(name + '_' + generate_code(15) + '.jpg', 'wb') as car:
                            car.write(response.content)
                        print('%s下载完毕' % name_dir)
                os.chdir('../../')

if __name__ == '__main__':
    case_list = ['车辆正面照&车辆安全检查照','司机安全照','起始用车仪盘公里数','结束用车仪盘公里数','路桥费照片','停车费照片']
    car_name = get_carNum()
    for func in case_list:
        url_img = get_url(func)
        Download(url_img, car_name)
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    540 引用 • 672 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
cuijianzhe
6 号黑客成员, 2000-03-03 23:22:13 加入 北京

推荐标签 标签

  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 527 关注
  • 996
    13 引用 • 200 回帖 • 1 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    28 引用 • 108 回帖
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 537 关注
  • 博客

    记录并分享人生的经历。

    272 引用 • 2386 回帖
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2031 回帖
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 621 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 413 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 1 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    26 引用 • 222 回帖 • 166 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    345 引用 • 1778 回帖
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 199 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 521 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 732 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    287 引用 • 4484 回帖 • 669 关注
  • sts
    2 引用 • 2 回帖 • 189 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    29 引用 • 111 回帖
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    103 引用 • 295 回帖
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    62 引用 • 289 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    676 引用 • 535 回帖
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 733 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    104 引用 • 126 回帖 • 419 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 97 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 517 关注