我有一个程序,它从Excel电子表格(一个小的表格:大约10张表格,每张表格约100个单元格)中读取一些数据,进行一些计算,然后将输出写入电子表格中的单元格。在

程序运行得很快,直到我修改后把它的输出写入与读取输入相同的Excel文件。以前我生成一个新的电子表格,然后手动将输出复制到原始文件中。在

修改之后,脚本的运行时间从几秒钟跳到大约7分钟。我运行cProfile进行调查,得到以下输出,按累计运行时间排序:ncalls tottime percall cumtime percall filename:lineno(function)

1 0.001 0.001 440.918 440.918 xlsx_transport_calc.py:1()

1 0.000 0.000 437.926 437.926 excel.py:76(load_workbook)

1 0.000 0.000 437.924 437.924 excel.py:161(_load_workbook)

9 0.000 0.000 437.911 48.657 worksheet.py:302(read_worksheet)

9 0.000 0.000 437.907 48.656 worksheet.py:296(fast_parse)

9 0.065 0.007 437.906 48.656 worksheet.py:61(parse)

9225 45.736 0.005 437.718 0.047 worksheet.py:150(parse_column_dimensions)

9292454 80.960 0.000 391.640 0.000 functools.py:105(wrapper)

9292437 62.181 0.000 116.213 0.000 cell.py:94(get_column_letter)

18585439 20.881 0.000 98.832 0.000 threading.py:214(__exit__)

18585443 58.912 0.000 86.641 0.000 threading.py:146(acquire)

18585443 56.600 0.000 77.951 0.000 threading.py:186(release)

9293461/9293452 22.317 0.000 22.319 0.000 {method 'join' of 'str' objects}

37170887 15.795 0.000 15.795 0.000 threading.py:63(_note)

21406059 13.460 0.000 13.460 0.000 {divmod}

37170888 12.853 0.000 12.853 0.000 {thread.get_ident}

18585447 12.589 0.000 12.589 0.000 {method 'acquire' of 'thread.lock' objects}

21408493 9.948 0.000 9.948 0.000 {chr}

21441151 8.323 0.000 8.323 0.000 {method 'append' of 'list' objects}

18585446 7.843 0.000 7.843 0.000 {method 'release' of 'thread.lock' objects}

...

...

...

脚本中的相关代码:

^{pr2}$

因此根据cProfile输出,罪魁祸首出现在对load_workbook的调用中。除此之外,我有点困惑。为什么对parse_column_dimensions的调用有9000个,对各种线程函数的调用有1800万个?和900万次呼叫get_column_letter?在

这是我第一次分析任何python脚本,所以我不确定这个输出是否正常。。。它似乎有一些奇怪的部分。在

有人能解释一下这里可能发生的事情吗?在

python pandas excel 慢_使用Python、Pandas和openpyx时,小Excel电子表格加载速度非常慢...相关推荐

  1. python截长图_利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)

    对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...

  2. nuxt解决首屏加载慢问题_一个 Node 脚本让你的前端项目加载速度飞起来

    写在最前面 我的原创什么声明变成什么鬼了-- 前言 随着前端三大框架的盛行,越来越多的前后端分离项目在服务器上跑了起来,随之而来,开发者也慢慢发现了这种开发模式所带来的弊端,其中之一就是首屏加载速度特 ...

  3. vue按需加载组件_微人事首页加载速度提高了 5 倍,我都做了什么?

    「本文之前发过,但是比较零散,这里我把用到的方案都汇总一下,方便大家索引,有需要的小伙伴可以收藏下方便查找.里边提到的几种方案,大家都可以对照着视频试一下」 ElementUI 按需加载: 服务端开启 ...

  4. python按某列拆分excel表格_利用Python+Pandas实现从一个excel表中提取列形成新表

    简要 利用python实现把一个工作表中的某些列,和其中单独的一列,提取成为一个个新表. 如图(处理前)蓝色部分是需要保留的列,红色是需要一项一项分出来作为单独表格的列. 其中,第一行的名字是用的回车 ...

  5. python制作表格处理_使用python处理excel表格——pandas(1)

    这里写目录标题 一.基本概念 二.内容 1.创建文件 A.创建空表格 B.创建非空表格 2.读取文件 A.读取整个表格 (1)读取有多个sheet的excel (2).title在首行 (3)titl ...

  6. pandas如何保存在excel里面_你好Python!再见Excel?

    现在很多行业,都离不开Excel: 做财务的,要用Excel做报表: 做物流的,会用Excel来跟踪订单情况: 做HR的,会用Excel算工资: 做运营的,会用Excel记录数据做分析. 不知道你有没 ...

  7. python移动平均线绘图_对python pandas 画移动平均线的方法详解

    数据文件 66001_.txt 内容格式: date,jz0,jz1,jz2,jz3,jz4,jz5 2012-12-28,0.9326,0.8835,1.0289,1.0027,1.1067,1.0 ...

  8. python图片显示中文_解决Python pandas plot输出图形中显示中文乱码问题

    解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaco ...

  9. excel去重_你好Python!再见Excel?

    现在很多行业,都离不开Excel: 做财务的,要用Excel做报表: 做物流的,会用Excel来跟踪订单情况: 做HR的,会用Excel算工资: 做运营的,会用Excel记录数据做分析. 不知道你有没 ...

  10. python与excel互通_【python】python vs Excel ( 与mysql数据库之间的交互)

    [python]python vs Excel ( 与mysql数据库之间的交互) 通过python与mysql数据库做交互 到目前为止大部分案例的演示数据都是基于文件进行读取的.那么python如何 ...

最新文章

  1. 10年磨一剑,软件编程走火入魔之:把简单的功能做个彻彻底底、把劳动成果重复利用...
  2. Kotlin极简教程:第5章 集合类
  3. C#中使用Directory实现对文件夹的常用操作
  4. OpenGL创建多维数据集的多个实例
  5. 计算机操作系统超全详解
  6. 华为云内容审核—性能更加狂野,价格更加腼腆
  7. ASP.NET Web API 2 中的属性路由使用(转载)
  8. 贝塔智能挪车V2.3.4汽车微信小程序 多开版源码
  9. 微型计算机原理及应用吴宁课后答案,微机原理及应用(吴宁) 习题答案chapter7(4页)-原创力文档...
  10. SecureCRT/FX的破解软件注册机被系统自动删除解决办法
  11. 网页flash遮挡问题
  12. 保护你的隐私,五种控制Android应用的权限的方法
  13. 可靠数据传输(rdt)实现的底层原理
  14. Android https证书过期,Android 的 HTTPS 证书过期异常
  15. 零基础学平面设计是自学好还是报班好?
  16. javacv 视频转换
  17. 预解释是一种毫无节操的机制(1-1-4)
  18. 2012年度IT博客大赛50强报道:陈裕强
  19. 面试官:说说react的渲染过程
  20. 真正的不需注册不需购买不需花钱的数据恢复软件

热门文章

  1. 架构师说低代码:走出半生,归来仍是“毒瘤”!
  2. 2018天津大学夏令营机试第二题
  3. 无线传输课程设计,基于ZigBee的水质监测系统设计
  4. 进击的人工智能:从产品角度,深度解析「对话机器人」
  5. 最小的操作系统MenuetOS
  6. android 解析程序包时出现问题
  7. 第二十四天 小丁三战链表
  8. HyperGBM之元学习器(meta_learner)
  9. 3d渲染性能测试软件,3D渲染性能测试
  10. 怎么把ppt弄成链接的形式_如何将ppt转换成html网页格式