2016-05-04 7 views
0
infile = open("/Users/name/Downloads/points.txt", "r") 
line = infile.readline() 
while line != "": 
    line = infile.readline() 
    wordlist = line.split() 
    x_co = float(wordlist[0]) 
    y_co = float(wordlist[1]) 

私は周りを見回しましたが、実際に私の問題に役立つものは見つかりませんでした。テキストファイルをインポート - 範囲外のリストインデックス

x(第1列)とy(第2列)の座標(図参照)を持つ.txtファイルがあります。 私はすべてのxをしたいとyが分離座標が、私は自分のコードを実行したとき、私は常にエラーを取得:助けるため

x_co = float(wordList[0]) 
IndexError: list index out of range 

感謝を!

Textfile with the coordinates

+3

1を処理します最初の行を解析しないでください。 2. 'line =" "*前に*読み込み、解析しているかどうかを調べます。次の 'readline'が空の場合はどうでしょうか? – usr2564301

答えて

0

より良いあなたがこの方法を行うことができます。

infile = open("/Users/name/Downloads/points.txt", "r") 
for line in infile: 
    if line: 
     wordlist = line.split() 
     x_co = float(wordlist[0]) 
     y_co = float(wordlist[1]) 
+0

それはうまくいくようですが、私は間違いから学びたいと思っています。なぜこのエラーが出るのですか? – bvdabjorn

+0

bvdabjorn:理由は@Rad Lexusのコメントを参照してください。 – martineau

+0

(コメントはいつでも削除できるので、気軽に自分の説明を追加してください。) 'if line:'行は誤解を招くことがあるので注意してください!ファイル内の行が空白の場合でも、それはまだ戻り値を含みます。行全体を削除して(入力ファイルが整形式であると仮定して)、または 'split'の後にチェックを追加します(そして、' float'キャストも同様にチェックする必要があります)。 – usr2564301

1
filename = "/Users/name/Downloads/points.txt" 
with open(filename) as infile: 
    for line in infile: 
     wordlist = line.split() 
     x_co = float(wordlist[0]) 
     y_co = float(wordlist[1]) 

withが自動的にファイルあなたは、Pythonで複数のこのような慣用の方法について

を閉じるread this

+1

もう一つは、内側のループの必要性はすべて 'x_co、y_co = line.split()のxのfloat(x)'です。 – usr2564301

関連する問題