我正在尝试将文件中的数据转换为浮点数。这是一个非常大的文件。它不会让我转换它,因为它说它是一个列表。我该如何解决这个问题?
File = open(filename,'r')
for line in File:
Data = File.readlines()
for line in Data:
numData = float(Data)
File.close()
for line in Data:
numData = float(Data)
这就是你的问题所在。您正在Data
列表上调用float()
,而不是在元素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
。
这是一种方法:
file_lines = [float(ln.rstrip()) for ln in open(filename)]