2013-07-19 3 views
0

У меня есть код, как этот. Я пытаюсь удалить первую строку файла tsv с именами полей, например field1, field2, .., fieldn.удалить первую строку tsv используя сниффер

  1. что-то не так с этим фрагментом кода. Я не получаю часть диалекта правильно. В настоящее время он дает свойство AttributeError: 'function' не имеет атрибута 'readline.

  2. Также есть способ, которым я могу дать имена полей из заголовка для его чтения. Я попытался сделать это с помощью метода csv.Sniffer(). Has_header без везения.

Пожалуйста, помогите

with open('outfile.txt','rb') as tsvin: 
    dialect=csv.Sniffer().sniff.readline(1024) 
    tsvin.seek(0) 
    reader=csv.reader(tsvin,dialect,delimiter='\t') 
    #has_header=csv.Sniffer().has_header(inf.read(1024)) 

for row in tsvin: 
    tsid= row[0] 
    full_list.append(tsid) 
    print [(g[0],len(list(g[1]))) for g in itertools.groupby(full_list)] 

ответ

0

Я получил это право:

data= csv.reader(open('outfile.tsv','rb'), delimiter = "\t") 
fields=data.next() 
for row in data: 
     tsid=row[0] 
     full_list.append(tsid) 
print [(g[0],len(list(g[1]))) for g in itertools.groupby(full_list)] 
Смежные вопросы