2014-09-28 103 views
0

我有一個文本文件,其中包含1列數字(如:1e-5,1.15e3等)。 如何將列保存爲列表只是浮動?如何將此文本文件保存到python列表中

輸入文本文件看起來像這樣:

1.00E-05 
1.06E-05 
1.13E-05 
1.19E-05 

我嘗試這樣做:

file=open('C:\Users\Enrique Jr\Desktop\h_energy.txt', "r") 
h_energy=[] 
for line in file: 
h_energy.append((line.split())) 
file.close() 

,並得到了這樣的輸出:

[['1.00E-05'], ['1.06E-05'], ['1.13E-05'], ['1.19E-05'] 
+0

根據您的示例輸出,您的文本文件只有一列數字,它們都是整數。沒有選項卡分隔符。但沒關係,你已經得到了很多有用的答案:) – cfi 2014-09-28 06:17:07

回答

0

試試這個:

file=open('output.txt', "r") 
array = [] 
for line in file: 
    array.append(float(line.rstrip())) 
file.close() 
+0

這個效果很好,但我需要在「數組」中的值浮動 – eewongjr 2014-09-29 03:05:44

+0

檢查編輯... – 2014-09-29 03:58:56

+0

完美!謝謝 – eewongjr 2014-09-29 06:07:20

3

您可以在Python中使用CSV閱讀庫:https://docs.python.org/2/library/csv.html

這將是這樣的:

>>> import csv 
>>> with open('output.txt', 'r') as csvfile: 
...  data = csv.reader(csvfile, delimiter='\t') 
...  print data 
[["1", "2"], ["3.4", "5"], ...] 

您需要將數據從文本轉換爲浮動或詮釋自己。

0
file=open('output.txt', "r") 
for line in file: 
    list.append(float(line.split("\t")[0])) 
    list.append(float(line.split("\t")[1])) 
file.close() 

如果需要整型和浮點存儲不同類型的並不僅僅是有一個整數 浮點表示,那麼你就需要嘗試-catch來看看,如果你能 解析爲一個int,如果然後不作爲浮點數:

try: 
    list.append(int(line.split("\t")[0])) 
except ValueError: 
    try: 
     inNumberfloat = float(inNumber) 
     list.append(float(line.split("\t")[0])) 
    except ValueError: 
     #neither an int nor float 
相關問題