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

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

阅读 5.5k
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)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题