2017-09-23 6 views
-2
!curl https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/worl 
d_temp_mean.csv -o mean_temp.txt 
weather = open('mean_temp.txt','a+') 
weather.write('Rio de Janeiro,Brazil,30.0,18.0\n"') 
weather.seek(0) 
headings = weather.readline() 
apple = headings.split(',') 
city_temp = weather.readline() 
orange = city_temp.split(',') 
while city_temp: 
    orange = city_temp.split(',') 
    print (apple[2] + ' of ' + orange[1] + ' is ' + orange[2] + ' Celsius') 
    city_temp = weather.readline() 
weather.close() 

중리스트 인덱스는 이해가 안 돼요. 나는 while 루프가 문자열만을 받도록 보장하기 위해 readline과 split을 분리하려고 시도했다. 당신이 당신의 파일을 추가 할 때분할 및 readline에 오류가 왜 범위

+2

당신도 오류 추적을 게시 할 수 있습니까 –

+2

귀하의 질문에 대한 품질이 낮은 플래그가 지정되어 있으며, 나는 당신에게 리뷰 작성자로 남겨집니다. (1)'mean_temp.txt'라는 입력 파일의 내용을 보여줄 수 있다면 질문에 대답하기를 원하는 사람들에게 도움이 될 것입니다. (2)'apple'과'orange'와 같은 이름을 사용하면 코드를 읽기가 더 어렵게 만듭니다. 예를 들어,'apple'에 대해서 대신'heading_items'를 사용할 수 있습니다. (3) @KalyanReddy에 동의합니다. –

답변

0

, 당신은 다음과 같이 끝 : 당신이 추가하는 선은 마지막 줄의 끝이 아닌 새로운 라인에 추가되어

city,country,month ave: highest high,month ave: lowest low 
Beijing,China,30.9,-8.4 
Cairo,Egypt,34.7,1.2 
London,UK,23.5,2.1 
Nairobi,Kenya,26.3,10.5 
New York City,USA,28.9,-2.8 
Sydney,Australia,26.5,8.7 
Tokyo,Japan,30.8,0.9Rio de Janeiro,Brazil,30.0,18.0 
" 

. 따라서 파일의 마지막 줄에 색인이 없기 때문에 범위를 벗어난 색인을 얻게됩니다.

새 줄을 추가하기 전에 캐리지 리턴을 추가하려고합니다.

+1

올바르지 않습니다. 다운로드 한 파일은 이미 개행 문자로 종료되었습니다. 실제 문제는 파일에 쓰여지는 문자열에'''을 추가하는 오타 (typo)에 기인합니다. 프로그램이 4를 기대할 때 하나의 요소 만 가진리스트로 분리되는 여분의 라인이 생성됩니다. – ekhumoro