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'])