2017-09-23 8 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() 

のうちリストインデックスエラーが発生した理由を私は理解していない:分割とreadlineの - 範囲

list index out of range

が出力に。私は、whileループが文字列を受け取ることを保証するために、readlineとsplitを分離しようとしました。

+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つを期待しているときに、要素が1つしかないリストに分割する余分な行を作成します。 – ekhumoro

関連する問題