Podział wczytanego pliku na kilka tablic

0

Witam,
Jestem początkujący w pythonie i mam do zrobienia małe zadanko. Jednak już na początku mam problem. Muszę wczytać dane z plików .csv do kilku tablic, mam dane w takiej formie:
plik1:
dane11 dane12 dane13 ... dane1n
dane21 dane22 dane23 ... dane2n
itd
Do pierwszej tablicy chcę wrzucić pierwsze kolumny z każdego pliku
Do drugiej tablicy drugie kolumny
A do trzeciej całą resztę.
Napisałem coś takiego, ale nie działa (pewnie nie dziwne, że nie działa, ale jak wspomniałem jestem bardzo początkujący:

    odczyt.append(csv.reader(open('1.csv'),delimiter=','))
    odczyt.append(csv.reader(open('2.csv'),delimiter=','))
    odczyt.append(csv.reader(open('3.csv'),delimiter=','))
    odczyt.append(csv.reader(open('4.csv'),delimiter=','))
    odczyt.append(csv.reader(open('5.csv'),delimiter=','))

    for plik in odczyt:
        tab.append(map(int, wiersz[0]) for wiersz in plik)
        tab1.append(map(int, wiersz[1]) for wiersz in plik)
        tab2.append(map(float,wiersz[2:]) for wiersz in plik)
 
0

Możesz poeksperymentować z tym kodem

import pprint

a = [[], [], []]

for i in xrange(1, 4):
    with open("dane%d.in" % i, "r") as f:
        lines = f.readlines()
        for line in lines:
            tokens = line.strip().split(" ")
            a[0].append(tokens[0])
            a[1].append(tokens[1])
            a[2].append(tokens[2:])
            
pprint.pprint(a)

kod działa dla trzech plików dane1.in, dane2.in, dane3.in o identycznej zawartości:

dane11 dane12 dane13 ... dane1n
dane21 dane22 dane23 ... dane2n
0

Dziękuję bardzo! I teraz wszystko byłoby pięknie, ale kiedy rzutuje na int to zamiast np 12 mam tablicę [1,2]. Czym to jest spowodowane i jak to naprawić?

0

Gdzie i kiedy rzutujesz? Pokaż kod.

0

Problem rozwiązany. Używałem map() zamiast int()

1 użytkowników online, w tym zalogowanych: 0, gości: 1