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

遍历文件时要记住的一件事是包含换行符,当您尝试使用 进行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 回答