2013-06-18 5 views
0

현재 파이썬의 csv 모듈을 사용하여 두 가지 유형의 파일을 구문 분석하려고합니다. 파싱을 시도하고있는 파일을 발견하기 위해서는 두 번째 줄의 첫 글자를 읽어야합니다. 그 라인이 무엇을 말하는가에 따라, 나는 7 번이나 4 번 라인으로 이동하고, csv를 사용하여 데이터를 읽으 려한다. readline()과 next()를 파일 객체에 섞어 놓지 않는다고 읽었습니다. 라인을 아래로 이동하는 다른 방법이 있습니까? 사람이 처리하는 방법에 대한 아이디어가있는 경우readline() 사용 후 줄을 통해 이동 python

with open(str(new_file)) as new_file: 
    new_file.next() 
    line2 = new_file.readline() 
    # Check to see which file it is 
    if line2[0] == "P": 
     # Move to line 7 
    else: 
     # Move to line 4 
    # Read in the contents of the file and get rid of whitespace 
    list_of_dicts = list(csv.DictReader(new_file, delimiter = " ", skipinitialspace = True)) 

, 즉 환상적 일 것입니다 : 이것은 내가 시도하고있는 무슨의 더 나은 아이디어를 제공하기 위해 내 현재 코드입니다.

답변

1
line2 = new_file.next() # now pointing at line 3 
if line2[0] == "P": 
    for _ in xrange(4): 
     new_file.next() # skip lines 3, 4, 5, 6 
else: 
    new_file.next() # skip line 3 only 
+1

여기에 상황을 추가해야합니다. – Parris