我有一个文本文件:
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);
检索数据并成功转换的正确方法是什么?
请您参考如下方法:
遍历文件时要记住的一件事是包含换行符,当您尝试使用 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 是一个上下文管理器,它通常是一种更有效的文件处理方式,因为它会处理诸如离开 block 时自动关闭之类的事情。 readlines 会将文件读入一个列表(每一行表示为一个列表元素),并且 split() 在空格处拆分。
