如果我有这种格式的文件:
1 2 3 4 5
6 7 8 9 10
用Python读取文件并将每个数字存储到列表中的正确方法是什么?
x_table = []
for eachLine in filename_1:
#Set up temp variable
x_table.append([])
tmpStr = ''
#Loop through each character in the line
for char in eachLine:
#Check whether the char is a number
if char.isdigit():
tmpStr += char
elif char == ' ' and tmpStr != '':
x_table[eachLine].append(int(char))
我得到这个错误:
type: list indices must be integers, not str.
如果需要数字处理,此函数将起作用:http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html 除非您需要更改数组的数组(数据被加载到numpy.ndarray中,如果您需要数字和数学处理,这是有效的)。
另一个解决方案:
如果需要数组数组,并且不想更改核心代码,请注意for中的每个元素。。。在。。。不是索引位置,而是实际元素。
要获取索引位置,请执行以下操作:对于枚举中的i,v(文件名1):
即使这样,如果filename_1是一个字符串,也不好。您应该在那里指定一个文件对象(它是iterable的,并且是逐行的)。
对于每一行(每行),您可以将以下代码附加到x_表:
记住在这里捕获异常。
完整代码:
numpy版本的完整代码:
记住在这两个代码中捕获异常。
注意:
可以使用正则表达式。这个例子将解析小数、负数和排除文本。
注意,这将返回一个列表。然后可以将值转换为int或float。
相关问题 更多 >
编程相关推荐