我正在尝试将文件中的数据转换为浮点数。这是一个非常大的文件。它不会让我转换它因为它说它是一个列表。我该如何解决这个问题?:
File = open(filename,'r')
for line in File:
Data = File.readlines()
for line in Data:
numData = float(Data)
File.close()
答案 0 :(得分:0)
for line in Data:
numData = float(Data)
问题出在哪里。您在列表float()
上而不是在Data
元素上调用line
。
顺便说一下,当你不必要时,你似乎在文件上循环两次。您声明File
,然后迭代它,并且对于每次迭代,您重新读取它 - 并再次迭代它。你应该做更像这样的事情:
with open(filename, 'r') as file:
for line in file:
numData = float(line)
当然,我怀疑你真的是想每次都设置numData
(根据PEP8,IIRC应该被称为num_data
)。但是,我不知道它的用途是什么,因为变量名称不清楚,所以我不能告诉你应该做什么。如果它是一个列表,你可能意味着这样的事情:
with open(filename, 'r') as file:
for line in file:
num_data.append(float(line))
请注意,我已将numData
更改为num_data
。
答案 1 :(得分:0)
这是一种方法:
file_lines = [float(ln.rstrip()) for ln in open(filename)]