1

私はテキストファイルを持っています:

1 0 1 0 1 0

1 0 1 0 1 0

1 0 1 0 1 0

1 0 1 0 1 0

各文字列を取得して整数データ型に変換できるようにしたいのですが、コードの結果はValueError: invalid literal for int() with base 10: ''

tile_map = open('background_tiles.txt','r');

    for line in tile_map:

        for string in line:

             self.type = int(string);

データを取得して正常に変換する正しい方法は何ですか?

4

2 に答える 2

4

ファイルを繰り返し処理するときに覚えておくべきことの 1 つは、改行文字が含まれていることです。それを を使用してキャストしようとすると、int()参照しているエラーが表示されます (Python はそれを整数に変換する方法を知らないため)。次のようなものを使用してみてください:

with open('background_tiles.txt', 'r') as f:
    contents = f.readlines()

for line in contents:
    for c in line.split():
        self.type = int(c)

withコンテキスト マネージャーであり、ブロックを離れるときに自動的に閉じるなどの処理を行うため、一般的にファイルを処理するより効率的な方法です。readlinesファイルをリスト (リスト要素として表される各行) に読み込み、split()スペースで分割します。

于 2012-11-24T23:47:00.330 に答える
3

あなたの行には - のような文字列が含まれています"1 0 1 0 1 0"。行をスペースで分割する必要があります: -

for string in line.split():
    self.type = int(string);
于 2012-11-24T23:44:41.907 に答える