到目前为止,我有这个:
def main():
bad_filename = True
l =[]
while bad_filename == True:
try:
filename = input("Enter the filename: ")
fp = open(filename, "r")
for f_line in fp:
a=(f_line)
b=(f_line.strip('\n'))
l.append(b)
print (l)
bad_filename = False
except IOError:
print("Error: The file was not found: ", filename)
main()
这是我的程序,当我打印这个我得到的
['1,2,3,4,5']
['1,2,3,4,5', '6,7,8,9,0']
['1,2,3,4,5', '6,7,8,9,0', '1.10,2.20,3.30,0.10,0.30']
但我需要得到
[1,2,3,4,5]
[6,7,8,9,0.00]
[1.10,2.20,3.3.0,0.10,0.30]
答案 0 :(得分:0)
文件的每一行都是用逗号分隔的数字系列,但对于python,它们只是字符。您还需要一个转换步骤才能将字符串放入列表中。首先在逗号上拆分以创建字符串列表,每个字符串都是一个数字。然后使用所谓的“列表理解”(或for
循环)将每个字符串转换为数字:
b = f_line.strip('\n').split(',')
c = [float(v) for v in b]
l.append(c)
如果你真的想在每次循环中重置列表(你想要的输出只显示最后一行),那么只需将数字列表分配给l
,而不是附加:
b = f_line.strip('\n').split(',')
l = [float(v) for v in b]
列表理解是一种简短的说法:
l = []
for v in b:
l.append(float(v))
a
和a
的分配不需要b
或额外的括号。