python_使用多线程来处理数据写入Excel文件_threading.Thread
创始人
2024-11-14 19:06:02

python_使用多线程来处理数据写入Excel文件

因为pandas的ExcelWriter不支持并发写入同一个文件,所以如果需要的话,后期还要合并。

import pandas as pd from io import BytesIO import threading import multiprocessing import time import math  # 假设我们有12万行的数据 data = pd.DataFrame({     'A': range(120001),     'B': range(120001),     'C': range(120001) })   def write_to_excel(df, filename):     with pd.ExcelWriter(filename) as writer:         df.to_excel(writer, index=False)  def thread_write(df, filename):     thread = threading.Thread(target=write_to_excel, args=(df, filename))     thread.start()     return thread  def test_threading(data):     threads = []     # 分割数据     split_size=30000     #向上取整     num_threads = math.ceil(120001/split_size)          data_splits = [data[i:i + split_size] for i in range(0, len(data), split_size)]     filenames = [f'D:\\desktop\\new\\thread_{i}.xlsx' for i in range(num_threads)]          start_time = time.time()     for i in range(num_threads):         threads.append(thread_write(data_splits[i], filenames[i]))          for thread in threads:         #join方法用于等待线程完成         thread.join()          print(f"Threaded execution took {time.time() - start_time:.2f} seconds")  # 模拟主函数入口 if __name__ == '__main__':     test_threading(data) 

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...