Home > Enterprise >  Writing data in lists
Writing data in lists

Time:01-26

I want to get rid of manually writing the data into a list every time and automate the process. The data would be coming from a csv file. I just want to be able to call on to the file and the data becomes part of the list so I can use that. This is what I have as my code.

lista1=['number','number','AAA','BBB','CCC','DDD','number','number','AAA','BBB','CCC','DDD','number','number','AAA','BBB','CCC','DDD']
lista2=[1,1,10,11,12,13,1,1,14,15,16,17,1,1,18,19,20,21]
lista_final = []
for i in range(len(lista1)):
    if lista1[i] == 'AAA':
        print('AAA',lista2[i])
    if lista1[i] == 'BBB':
        print('BBB',lista2[i])
    if lista1[i] == 'CCC':
            print('CCC',lista2[i])
    if lista1[i] == 'DDD':
        print('DDD',lista2[i])

Sample Data:

AAA BBB CCC DDD AAA BBB CCC DDD
10 11 12 13 14 15 16 17

Output:

AAA BBB CCC DDD
10 11 12 13
14 15 16 17

My main concern still is to get the sample data into the list instead of actually writing down the values like 'AAA' 'BBB'

CodePudding user response:

Check out Python's csv module which provides you with tooling for easy csv-reading and -writing.

Example from the docs for reading:

import csv

with open('eggs.csv', newline='') as csvfile:

    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')

    for row in spamreader:

        print(', '.join(row))
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam

and for writing:

import csv
with open('eggs.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5   ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
  • Related