2013-02-27 36 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]