2013-11-08 2 views
2

Как открыть каждый столбец текстового файла в виде отдельного списка?Как открыть каждый столбец текстового файла как отдельный список?

import csv  
infile = open ('data.txt', 'r') 
reader = csv.reader(infile, delimiter=' ') 
col1 = [line[0] for line in reader] 
print (col1) 
col2 = [line[1] for line in reader] 
print (col2) 
But column2 is empty. Any idea??? 

data.txt выглядеть следующим образом:

a d 1 
b e 2 
c f 3 

ответ

5

В коде col2 пуст, потому что после первой итерации (List осмыслению для col1) итератор уже исчерпан.

Вы можете zip с *:

import csv 
with open('abc.csv') as f: 
    reader = csv.reader(f, delimiter=' ') 
    c1, c2, c3 = zip(*reader) 
    print c1 
    print c2 
    print c3 

Выход:

('a', 'b', 'c') 
('d', 'e', 'f') 
('1', '2', '3') 
+1

Может быть полезно ответить на эту часть вопроса, а также:. «Но column2 пуст Любые идея ???» –

+0

@ AndréCaron Добавил эту часть. –

+1

было бы лучше, если бы вы описали значение: zip (* reader) @ hcwhsa – 2964502

0
with open ('data.txt','r') as infile: 
    col1= [i.strip().split(' ')[0] for i in infile] 
with open ('data.txt','r') as infile:  
    col2= [i.strip().split(' ')[1] for i in infile] 
    print (col1) 
    print (col2) 
Смежные вопросы