表格数据提取

本贴最后更新于 1709 天前,其中的信息可能已经事过境迁
#!/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 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    554 引用 • 675 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    337 引用 • 324 回帖 • 1 关注
  • HTML

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

    108 引用 • 295 回帖
  • Swift

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

    34 引用 • 37 回帖 • 555 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1396 回帖 • 252 关注
  • abitmean

    有点意思就行了

    34 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    121 引用 • 323 回帖
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    188 引用 • 3916 回帖
  • OneNote
    1 引用 • 3 回帖 • 2 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    240 引用 • 224 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    415 引用 • 3601 回帖
  • Tomcat

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

    162 引用 • 529 回帖 • 12 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 2 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 451 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 635 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 201 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 61 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 167 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    79 引用 • 431 回帖 • 1 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    59 引用 • 22 回帖 • 1 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 1 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 472 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    173 引用 • 541 回帖
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    101 引用 • 905 回帖
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1444 引用 • 10083 回帖 • 499 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 714 关注