1

i tried different solution proposed in similar questions but i do not know why they are not working for me. I will be really appreciated if you help me on that. Below is the initial code. I want to generate 1 mil records for 6 different attributes and export them in csv but i cannot save randomly generated values in lists.

import string
import random
import csv
#choice_list
os_version = ['release 5.7', 'release 5.1', 'release 6.7']
os_name = ['Linux', 'HP/UX', 'AIX', 'SunOS']
#output
id_gen = []
ram_gen = []
name_gen = []
sn_gen = []
osn_gen = []
osv_gen = []

def id_generator(size=32, chars=string.ascii_lowercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))

def name_generator(size=32, chars=string.ascii_uppercase):
    return ''.join(random.choice(chars) for _ in range(size))

def serial_number_generator(size=16, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))

def os_name_generator():
    return random.choice(os_name)

def os_version_generator():
    return random.choice(os_version)

def ram_generator():
    return 2048



for _ in range(0, 10):
    #print('{}\t{}\t{}\t{}\t{}\t{}'.format(id_generator(), ram_generator(), name_generator(), serial_number_generator(), os_version_generator(), os_name_generator()))
    id_gen = id_gen.append(id_generator())
    ram_gen = ram_gen.append(ram_generator())
    name_gen = name_gen.append(name_generator())
    sn_gen = sn_gen.append(serial_number_generator())
    osn_gen = osn_gen.append(os_version_generator())
    osv_gen = osv_gen.append(os_name_generator())
Trifon Getsov
  • 47
  • 1
  • 7
  • 1
    to append to a list you dont need to set the value back (if that makes sense) so where you have done `list = list.append(some_string)` just change it to `list.append(some_string)` – WhatsThePoint Feb 27 '17 at 08:49
  • 1
    The `append` function returns `None`, the list is modified instead. You are assigning it to the same variable which is being used in a loop. – mshsayem Feb 27 '17 at 08:49
  • 1
    In other words, change `id_gen = id_gen.append(id_generator())` to `id_gen.append(id_generator())`. Etc. – PM 2Ring Feb 27 '17 at 08:50
  • 1
    BTW, using `generator` in your function names is a little confusing, since those are all just normal functions, not [generators](https://docs.python.org/3/tutorial/classes.html#generators). – PM 2Ring Feb 27 '17 at 08:52
  • works guys thank you. @PM 2Ring thank you for the suggestion but as i started using python 2-3 weeks ago it is easier for me to use names which are meaningful to me. – Trifon Getsov Feb 27 '17 at 08:56

0 Answers0