Sto cercando di creare stringhe alfa reali, intere, alfanumeriche, alfa e quindi scrivere in un file fino a quando le dimensioni del file raggiungono 10MB.Il modo più veloce per scrivere enormi dati nel file
Il codice è il seguente.
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)
Ci vogliono circa 225,953,125 mila secondo per completare. Come posso migliorare la velocità di questo programma? Si prega di fornire alcune informazioni sul codice?
dove è il tempo trascorso nel tuo programma? – dm03514
@MartijnPieters Ho provato lo stesso codice in Java e ci sono voluti ~ 0,93 secondi. – ajkumar25
Il programma Java ha scritto sul disco. Ho controllato la dimensione del file manualmente dopo il completamento del processo. – ajkumar25