2014-03-12 2 views
1

이러한 데이터건너 뛰기 라인 간헐적으로 파이썬

Probes FOO BAR 
Organ BM LV 
Genes Gene1 Gene2 
1452463_x_at 306.564  185.705 
1439374_x_at 393.742  330.495 
1426392_a_at 269.850  209.931 

나는 기관 및 유전자로 시작하는 처음 두 줄을 인쇄 건너 뛰려을 감안할 때. 실패한 이유를

with open('my_data.txt','r') as tsvfile 
    tabreader = csv.reader(tsvfile,delimiter = '\t') 

    for row in tabreader: 
     if ["Genes","Organ"] in row: 
      continue 
     print row 

을하지만 : 내가 뭘하려고하면이 무엇입니까? 실패한 이유를

Probes FOO BAR 
1452463_x_at 306.564  185.705 
1439374_x_at 393.742  330.495 
1426392_a_at 269.850  209.931 
+0

파이썬에서는'not' 함수로 문장을 부정하는 것이 더 쉽습니다. 예를 들어 다음 표현식을 사용하는 것을 고려해 볼 수 있습니다 :'(Genes ','Organ '에없는) row [0] : print row' – ssm

답변

3

을하지만 :

최종 원하는 출력

이 무엇입니까?

당신이 ["Genes", "Organ"] 당신이 그것을 다른 방법으로 프레임 할 수 있습니다 반면, (당신이 두 요소의 하위 목록의 존재를 단일 요소의 목록을 확인 있기 때문에,하지 않은) 행에 있는지 여부를 확인하기 때문에 :

# row[0] is a single element ... 
# .. that might be in ("Genes", "Organ") 
if row[0] in ("Genes", "Organ"): 
    # ... 
1
if "Genes" in row or "Organ" in row 

트릭을 할해야!

실수로 table + table 연산자가 object + table과 동일하게 동작한다고 가정하는 것이 좋습니다. 그런 것을 조심하십시오.