2013-02-27 35 views
2

我有一个包含以下条目转换输入文件列出

6.56 
4.64 
5.75 
5.59 
6.32 
6.54 
7.20 
5.33 

我怎样才能将它转换为列表看起来像以下

[6.56,4.64,5.75,5.59,6.32,6.54,7.20,5.33] 

请输入文件的文本帮我

+2

[?你尝试过什么(http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Volatility 2013-02-27 10:00:39

+1

重复的:http://stackoverflow.com/questions/3925614 /怎么办 - 你读-A-文件到-A-列表中,蟒蛇。或者至少足够接近以便它给你解决方案:) – jlengrand 2013-02-27 10:03:19

回答

1
with open('filename.txt', 'r') as f: 
    numbers = [float(x.strip()) for x in f] 
+2

你不需要'strip()' - 'float()'自动做到这一点。 – Volatility 2013-02-27 10:05:04

+0

@Volatility不,它不。他做对了。 – 2013-02-27 10:05:44

+1

开放('filename.txt')为f:numbers = map(float,f) – Vladimir 2013-02-27 10:06:13

0

假设您在一个名为values.txt的文件中有这些值,您可以尝试以下操作:

values = [] 
with open('values.txt', 'r') as f: 
    values = [line.strip() for line in f] 
0
[ float(i) for i in open('your_file','r').read().split('\n') if i ] 
+2

不会留下一个打开的文件吗? – mensi 2013-02-27 10:08:26

+0

不确定...但不会出现在'lsof'中。 – Zulu 2013-02-27 10:16:08

1

你可以直接readlines方法(假设每行一个值),从文件中读取它并将其转换为浮动。

values = open('filename.txt', 'rb').readlines() 

values = [float(value.strip()) for value in values]