2017-07-27 42 views
0

我有一個tsv文件,我想迭代所有的行。這是我的代碼:如何遍歷tsv文件中的所有行?

import csv 

with open('tsv2.tsv','r') as tsvin: 
    tsvin = csv.reader(tsvin, delimiter='\t') 
    tsv_file = tsvin 

    def non_synonymous_filter(tsv_file): 
     non_synonymous_list=[] 
     for row in range(len(tsv_file)): 
      if "NON_SYNONYMOUS_CODING" in row[index]: 
       non_synonymous_list.append(row) 

     return non_synonymous_list 

    print(non_synonymous_filter(tsv_file)) 

問題是我收到此錯誤信息:類型的對象_csv.reader'沒有LEN()

回答

0
在你的代碼

tsvin/tsv_file是一個CSV閱讀器,不包含文本的列表或數組。我建議您閱讀這樣的線,然後查看您的內層方法:

with open('tsv2.tsv','r') as tsvin: 
    for line in csv.reader(tsvin, delimiter='\t'): 
     print line 

我不是你到底想要什麼明確的(例如什麼是「指數」?),但也許這:

non_synonymous_list=[] 
with open('tsv2.tsv','r') as tsvin: 
    non_synonymous_list = [line for line in csv.reader(tsvin, delimiter='\t') if "NON_SYNONYMOUS_CODING" in line] 

它返回類似:

[[ 'NON_SYNONYMOUS_CODING', '第二欄', '第三欄']

相關問題