0

到目前为止,我有这个:

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]
4

1 回答 1

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或围绕aand的分配的额外括号b

于 2013-10-28T19:30:05.667 回答