Python读取文件中的每个字符串

时间:2012-11-24 23:42:30

标签: python string file input int

我有一个文本文件:

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);

检索数据并将其成功转换的正确方法是什么?

2 个答案:

答案 0 :(得分: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()分割该空格。

答案 1 :(得分:3)

您的行包含类似 - "1 0 1 0 1 0"的字符串。你需要在空间上划分你的线: -

for string in line.split():
    self.type = int(string);