python中如何高效的追加文件
ringa_lee
ringa_lee 2017-04-17 15:49:27
[Python讨论组]

我想生成这样的数据,并写入到文件中
00000000
00000001
00000002
00000003
00000004
.....
99999999
共1亿条

下面是我的代码:

#!/usr/bin/python

import itertools

def gener_8_num():
    return itertools.product('0123456789', '0123456789', '0123456789', '0123456789','0123456789', '0123456789', '0123456789', '0123456789') 

cnt = 0
for x in gener_8_num():
    cnt += 1

    if cnt % 10000 == 0:
        print cnt

    file("8_num","a").write("".join(x) + "\n")

如果把file("8_num","a").write("".join(x) + "\n")去掉,大概需要15s
但是加上需要877多秒

生成的文件800多M

想请问下如何提高生成这个文件的速度呢?

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
伊谢尔伦

数组合并多此一举,充分利用缓存就行了(例子中为约5M)
时间应该一分钟左右就够了(SSD硬盘)

#!/usr/bin/env python

target = file("/tmp/test", "a", 5120000)
limit = 100000000

def generate_numbers():
    i = 0
    while (i < limit):
        yield "%08d\n" % i
        i = i + 1

for product in generate_numbers():
    target.write(product)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号