1) Why did you implement time.sleep in several places in your 2nd method?

在__main__,time.sleep(0.1),给启动的process一个启动的时间片。

在f2(fq, q)中,给queue一个时间片,以将所有缓冲数据刷新到管道,并

使用q.get_nowait()。

在w(q)中,仅用于测试writer.to_excel(...)的长期运行,

我把这个拿走了。在2) What is the difference between pool.map and pool = [mp.Process( . )]?

使用pool.map不需要Queue,不传递任何参数,更短的代码。

worker_process必须立即返回result并终止。

pool.map只要iteration都完成了,就会启动一个新进程。

在此之后必须处理results。在

使用pool = [mp.Process( . )],启动nprocesses。

process终止于queue.EmptyCan you think of a situation where you would prefer one method over the other?

方法1:快速设置,序列化,只对结果感兴趣继续。

方法二:如果你想把所有的工作负荷都并行进行。在

你不能在进程中使用global writer。

writer实例必须属于一个process。在

mp.Pool的用法,例如:def f1(k):

# *** DO SOME STUFF HERE***

results = pd.DataFrame(df_)

return results

if __name__ == '__main__':

pool = mp.Pool()

results = pool.map(f1, range(len(list_of_days)))

writer = pd.ExcelWriter('../test/myfile.xlsx', engine='xlsxwriter')

for k, result in enumerate(results):

result.to_excel(writer, sheet_name=list_of_days[k])

writer.save()

pool.close()

这导致.to_excel(...)在__main__进程中按顺序调用。在

如果你想要并行.to_excel(...),你必须使用mp.Queue()。

例如:

worker过程:

^{pr2}$

writer过程:def w(q):

writer = pd.ExcelWriter('myfile.xlsx', engine='xlsxwriter')

while True:

try:

titel, result = q.get()

except ValueError:

writer.save()

exit(0)

result.to_excel(writer, sheet_name=titel)

__main__过程:if __name__ == '__main__':

w_q = mp.Queue()

w_p = mp.Process(target=w, args=(w_q,))

w_p.start()

time.sleep(0.1)

f_q = mp.Queue()

for i in range(len(list_of_days)):

f_q.put(i)

pool = [mp.Process(target=f2, args=(f_q, w_q,)) for p in range(os.cpu_count()+1)]

for p in pool:

p.start()

time.sleep(0.1)

for p in pool:

p.join()

w_q.put('STOP')

w_p.join()

测试Python:3.4.2-熊猫:0.19.2-十lsxwriter:0.9.6

python操作excel表格写入多行和多列_python多处理:写入同一excel-fi相关推荐

  1. python利用表格中的某一个列_python取excel表格第一列数据?python操作excel,使用xlrd模块,获取某一列数据的语句为...

    用Python修改excel中一列数据 可以使用pandas库,先读取excel文件,然后使用pandas库来修改一列,然后写入文件即可. 怎样用python,读取excel中的一列数据 sheet. ...

  2. 如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件?

    如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件? 1.问题描述 2.解决过程 2.1 问题分析: 2.2 解决思路 3.运行结果 1.问题描述 最近在处理一堆工 ...

  3. word文档中找不到服务器,【在WORD文件中插入excel表格,编辑保存后重新打开word文件并双击excel时提示“找不到服务器应用程序、源文件】excel整个表格不见了...

    为什么PPT插入EXCEL表格时显示无法找到服务器应用程序 这是由于excel或者ppt只能兼容.低版本的ppt和excel是无法打版本excel插入的表格的. 解决如下: 1.新建一个文本,将后缀名 ...

  4. 成功解决在excel表格中仅在某列内插入一个空白单元格,使其下部的数据整体下移一格

    成功解决在excel表格中仅在某列内插入一个空白单元格,使其下部的数据整体下移一格 目录 解决问题 解决方法 解决问题 在excel表格中仅在某列内插入一个空白单元格,使其下部的数据整体下移一格 解决 ...

  5. excel表格导出之后身份证号列变成了科学计数法

    excel表格导出之后身份证号列变成了科学计数法 解决:写sql查询出所有数据,并在身份证列添加字符,然后导出,将要复制的excel表格设置单元格格式问文本类型,然后复制粘贴,再把加入的字符删除,搞定 ...

  6. axure中怎么做出固定首行_办公软件操作技巧078:如何在excel表格中冻结行与列...

    在日常工作中,有时我们编辑的excel表格会比较大,数据内容有很多行和列,当我们拖动滚动条找到了离表头比较远的数据行或列的内容时,又看不到行或列表头标题信息了,这时再去处理数据信息就会感觉很不方便,如 ...

  7. php表格制作4行两列的表格,excel表格怎么插行和列?

    表格插入行的方法:将鼠标移动行数的编号上,右击选择"插入",再通过输入数值来确定需要添加的行数,回车即可.表格插入列的方法:将鼠标移动列数的编号上,右击选择"插入&quo ...

  8. php添加表格行列,excel表格怎么插行和列?

    表格插入行的方法:将鼠标移动行数的编号上,右击选择"插入",再通过输入数值来确定需要添加的行数,回车即可.表格插入列的方法:将鼠标移动列数的编号上,右击选择"插入&quo ...

  9. python操作excle表格

    基础练习 话不多说,先做一下基础练习.来,左边跟我一起画个龙,右边画一道彩虹. # import paramiko # import time import openpyxl from openpyx ...

最新文章

  1. 美团在Redis上踩过的一些坑-3.redis内存占用飙升
  2. HiveQL基本操作整理
  3. 到底要不要考研?读完研究生就能找到好工作了吗?
  4. python 编译成exe黑屏_python''外星人入侵''打包成exe遇到的问题和解决办法,闪退,黑屏。...
  5. 【论文阅读】Rich feature hierarchies for accurate object detection and semantic segmentation
  6. mysql like 4种优化_mysql like优化_超级优化 清木桥
  7. 免费股票量化交易软件有哪些?
  8. [Python] GAMP结果文件批量统计与绘图
  9. 设计系统测试用例时应考虑的类型
  10. mysql写保护_简易修改注册表!小白都会去掉u盘写保护
  11. 微信小程序marker官方示例中,模拟器和真机显示不同的原因
  12. VLAN tag格式
  13. sqlrelay mysql_sql relay 使用
  14. python mp3转wav_python 录音,WAV转MP3
  15. 喝酒神器摇骰子小程序源码分享以及搭建效果图
  16. 新版win10的恢复语言栏设置
  17. MySQL the configuration step Starting Server is taking the longer than expected
  18. gromacs 安装_GROMACS安装专述
  19. 接受密码和用户名,若用户名为‘admin‘,密码为‘‘123456‘则显示用户登录成功,否则一直登录
  20. php随机生成汉字、随机字符串

热门文章

  1. Opportunity的status改为lost后,chance of success仍然为100的原因
  2. What happens when clicking interaction record work center?
  3. SAP cloud platform 504 gateway time out Cloud connector
  4. nodejs request module里的json参数的一个坑
  5. python人脸识别opencv_用python和opencv 做人脸识别
  6. mysql 执行报错及解决方法 Multi-statement transaction required more than ‘max_binlog_cache_size‘
  7. 我的世界卸载java_我的世界:官方移除了Herobrine?一个骗了玩家十年的谎言!...
  8. 大华供应链管理平台_files_锦江全球采购平台SRM系统2.0版本上线 打造更智能的供应链...
  9. pwn波c语言程序,pwn的一些命令
  10. 带有下标的赋值维度不匹配_KDD 2019|?结构感知的神经网络对人才-组织匹配的影响...