2013-04-07 3 views
-1

3 열 2 열 (높음) 및 3 열 (낮음) 값 중 두 개의 다른 빈 문자열로 이동하도록 텍스트 파일을 구문 분석하려고합니다. 하지만 불행히도 나는 수없이 많은 시간을 보냈지 만 그 일을 할 수는 없습니다. 내 텍스트 파일은 다음과 같습니다.python 파일 구문 분석

Boston July Temperatures 
------------------------- 

Day High Low 
------------ 

1 91 70 
2 84 69 
3 86 68 
4 84 68 
5 83 70 
6 80 68 
7 86 73 
8 89 71 
9 84 67 
10 83 65 

그리고 여기까지 시도한 코드가 있습니다.

low_Temp=[] 
high_Temp=[] 
inFile = open('julyTemps.txt') 
for line in inFile.readlines(): 
    fields = line.strip(' ') 
    if len(fields) < 3 or not fields[0].isdigit(): 
     pass 
    else: 
     low_Temp.append(fields[2]) 
     high_Temp.append(fields[1]) 
print low_Temp 
print high_Temp 

마지막으로 목표는이 값들 사이의 차이를 계산하고 일간의 차이를 플로팅하는 것입니다. 내가 빈 벡터에서 올바른 값을 얻지 못하는 이유를 알아낼 수 있다면 그 부분을 할 수 있다고 생각합니다.

누군가 내가 잘못하고있는 것을 설명 할 수 있습니까? 미리 감사드립니다 .... 당신은 다른 라인 엔딩을 고려하여, 보편적 모드에서 파일을 열 수 있는지 확인하는 것이 좋습니다

답변

0

는 :

inFile = open('julyTemps.txt', 'rU') # read universal 

귀하의 일반적인 접근은 좋아 보인다. 그래도, 파일 객체를 통해 오히려 사용 readlines도보다 반복 좋네요 :

for line in inFile: 
    line = line.strip() # remove newline characters 
    fields = line.split(' ') 

    if len(fields) == 3: 
     _, high, low = fields 
     high_Temp.append(float(high)) 
     low_Temp.append(float(low)) 

당신이 당신의 현재 접근 방식 (또는 내가 위에서 게시 한)으로 받고있어 정확한 문제가 무엇입니까?

+0

빠른 응답을 보내 주셔서 감사합니다. 나는 기본적으로이 두 줄을 얻고 있습니다 ... 나는 아직도 내가 왜 이걸 얻고 있는지 알지 못합니다 ... low_Temp = [ '9', '8', '8', '8', '8' '', '', '', '', '', '', '' '' '' '' '' '' '' '' ' ',' ',' ',' '] high_Temp = [' ',' ',' ',' '' ',' ',' '', '' , '0', '1', '2', '3', '4', '5', '6', '7', '8' 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ] – upendra