当前位置: 首页 > news >正文

Python write 100M items data to csv file in batch

import uuid
import time
from datetime import datetime
import threading
from tkinter import messagebox
import os
import psutil
import pandas as pdidx=0
idx_lock=threading.Lock()def get_mem():pid=os.getpid()proc=psutil.Process(pid)mem_info=proc.memory_info()rss_mem=f'{mem_info.rss/1024/1024:.2f} M'vms_mem=f'{mem_info.vms/1024/1024:.2f} M'sys_mem=psutil.virtual_memory()total_mem=f'{sys_mem.total/1024/1024/1024:.2f} G'avail_mem=f'{sys_mem.available/1024/1024/1024:.2f} G'used_percent=f'{sys_mem.percent}%'return f'{datetime.now()},PId:{pid},rss mem:{rss_mem},vms mem:{vms_mem},total mem:{total_mem},avail mem:{avail_mem},used percent:{used_percent}'def get_idx():global idxwith idx_lock:idx+=1current_idx=idxreturn current_idxdef get_time_uuid():return f'{get_idx()}_{datetime.now().strftime('%Y%m%d%H%M%S%f')}_{uuid.uuid4().hex}'def get_uuid_time():return f'{get_idx()}_{uuid.uuid4().hex}_{datetime.now().strftime('%Y%m%d%H%M%S%f')}'class Book:def __init__(self,id,name,author,abstract,comment,content,isbn,summary,title,topic):self.id=idself.name=nameself.author=authorself.abstract=abstractself.comment=commentself.content=contentself.isbn=isbnself.summary=summaryself.title=titleself.topic=topicdef to_dict(self):return {'Id':self.id,'Name':self.name,'Author':self.author,'Abstract':self.abstract,'Comment':self.comment,'Content':self.content,'ISBN':self.isbn,'Summary':self.summary,'Title':self.title,'Topic':self.topic}is_first_headers=Truedef write_data_list_to_csv(data_list=[]):global is_first_headersdf=pd.DataFrame(data_list)data_list.clear()with open(csv_file,'a+',encoding='utf-8-sig') as csv_append_file:df.to_csv(csv_append_file,index=False,header=is_first_headers)print(f'{datetime.now()},a:{a},write to {csv_file},{get_mem()}')is_first_headers=Falsedata_list=[]
csv_file=f'CSV_{datetime.now().strftime('%Y%m%d%H%M%S%f')}.csv'
arr=range(1,105000001)
for a in arr:bk=Book(a,f'Name_{a}',f'Author_{a}',f'Abstract_{a}',f'Comment_{a}',f'Content_{a}',f'ISBN_{a}_{uuid.uuid4().hex}',f'Summary_{a}',f'Title_{a}',f'Topic_{a}')data_list.append(bk.to_dict())if a%1000000==0:write_data_list_to_csv(data_list)data_list.clear()if len(data_list)>0:write_data_list_to_csv(data_list)data_list.clear()print(f'{datetime.now()},write {len(arr)} items to {csv_file}')

 

 

image

 

 

image

 

 

 

image

 

 

 

 

 

 

image

 

http://www.jsqmd.com/news/405624/

相关文章:

  • 2026山东债务协商服务优质机构推荐(负债人亲历实测,正规上岸指南) - 代码非世界
  • 2026冲刺用!AI论文平台 千笔·专业学术智能体 VS 锐智 AI,自考写作更高效!
  • 信用卡委托协商机构山东债务协商实战经验分享,真实案例解压指南 - 代码非世界
  • 2026年市面上有实力的汽车零件超声波清洗机源头厂家哪家靠谱,刻蚀机/液压阀体清洗机,汽车零件超声波清洗机生产厂家排名 - 品牌推荐师
  • 2026山东债务协商服务优质机构推荐:专业团队助您重掌财务主动权 - 代码非世界
  • 2026年2月最新发布:广州AI获客公司实力榜单,谁在领跑“自动化增长”? - 野榜精选
  • 2026最新!9个降AI率网站测评:专科生降AIGC必备工具全解析
  • 写作压力小了!10个降AIGC软件测评:自考降AI率必备工具推荐
  • 2026更新版!AI论文工具 千笔写作工具 VS speedai,本科生专属高效写作神器!
  • 科研党收藏!一键生成论文工具,千笔 VS 文途AI,专科生专属
  • 2026北京信用卡协商TOP5实测|负债党亲测避坑,专业度+口碑双在线,上岸少走弯路 - 代码非世界
  • 【学习笔记】珂朵莉树/颜色段均摊
  • 小红统计区间(easy)【牛客tracker 每日一题】
  • 2026北京信用卡协商TOP5机构实测:专业能力与口碑如何选? - 代码非世界
  • [AI提效-27]-2026年AI多媒体生成工具全景对比指南
  • [AI提效-26]-2026年多媒体创作工具全景指南
  • MATLAB代码:基于两阶段鲁棒优化算法的多微网联合调度及容量配置 关键词:多微网 优化调度 ...
  • 编译生成方法二:手动写cmake脚本
  • 编译生成方法一:build_oai --phy_simulators
  • 基于5G的车辆跟驰预警系统(论文+源码)
  • 基于物联网的超市智能自助购物系统设计(论文+源码)
  • 基于RFSOC+VU13P在复杂电磁环境构设中技术应用分析
  • 编译生成方法三:CMakePresets.json
  • 2026更新版!8个一键生成论文工具测评:自考毕业论文+开题报告高效写作指南
  • python高校体育馆场地预约系统 商品购买系统小程序
  • RFSOC与ADRV9009、AD9026、AD9361技术指标及应用场景对比分析
  • 牛B,登上GitHub Trending的国产神器:把RAG应用装进手机只要3行代码~~~
  • Pimp My LLM Leveraging Variability Modeling to Tune Inference Hyperparameters
  • 关节养护指南:手指关节炎吃保健品哪个品牌好(品牌榜单) - 品牌排行榜
  • 『科技』翁家翌访谈播客