python – 在文件中写入大量数据的最快方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在文件中写入大量数据的最快方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2086字,纯文字阅读大概需要3分钟。
内容图文
![python – 在文件中写入大量数据的最快方法](/upload/InfoBanner/zyjiaocheng/708/77f36fc764414e73b83702e846632d25.jpg)
我试图创建一个随机的真实,整数,字母数字,字母字符串,然后写入文件,直到文件大小达到10MB.
代码如下.
import string
import random
import time
import sys
class Generator():
def __init__(self):
self.generate_alphabetical_strings()
self.generate_integers()
self.generate_alphanumeric()
self.generate_real_numbers()
def generate_alphabetical_strings(self):
return ''.join(random.choice(string.ascii_lowercase) for i in range(12))
def generate_integers(self):
return ''.join(random.choice(string.digits) for i in range(12))
def generate_alphanumeric(self):
return ''.join(random.choice(self.generate_alphabetical_strings() +
self.generate_integers()) for i in range(12))
def _insert_dot(self, string, index):
return string[:index].__add__('.').__add__(string[index:])
def generate_real_numbers(self):
rand_int_string = ''.join(random.choice(self.generate_integers()) for i in range(12))
return self._insert_dot(rand_int_string, random.randint(0, 11))
from time import process_time
import os
a = Generator()
t = process_time()
inp = open("test.txt", "w")
lt = 10 * 1000 * 1000
count = 0
while count <= lt:
inp.write(a.generate_alphanumeric())
count += 39
inp.close()
elapsed_time = process_time() - t
print(elapsed_time)
完成大约需要225.953125秒.我怎样才能提高这个程序的速度?请提供一些代码见解?
解决方法:
观察到“缓慢”的两个主要原因:
>你的while循环很慢,它有大约一百万次迭代.
>您没有正确使用I / O缓冲.不要进行这么多系统调用.目前,您调用write()大约一百万次.
首先在Python数据结构中创建数据,然后只调用write()一次.
这更快:
t0 = time.time()
open("bla.txt", "wb").write(''.join(random.choice(string.ascii_lowercase) for i in xrange(10**7)))
d = time.time() - t0
print "duration: %.2f s." % d
输出:持续时间:7.30秒.
现在程序花费大部分时间生成数据,即随机的东西.通过将random.choice(string.ascii_lowercase)替换为例如,您可以轻松地看到它. “一种”.然后测量的时间在我的机器上下降到一秒以下.
如果你想更接近地看到你的机器在写入磁盘时的速度有多快,使用Python的最快(?)方式在将数据写入磁盘之前生成大数据:
>>> t0=time.time(); chunk="a"*10**7; open("bla.txt", "wb").write(chunk); d=time.time()-t0; print "duration: %.2f s." % d
duration: 0.02 s.
内容总结
以上是互联网集市为您收集整理的python – 在文件中写入大量数据的最快方法全部内容,希望文章能够帮你解决python – 在文件中写入大量数据的最快方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。