如何将此文本文件保存到python中的列表中

时间:2014-09-28 05:24:04

标签: python list io split

我有一个由1列数字组成的文本文件(例如:1e-5,1.15e3等)。 如何将列保存为列表只是浮动?

输入文本文件如下所示:

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

3 个答案:

答案 0 :(得分: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"], ...]

您需要自己将数据从文本转换为float或int。

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分: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()

如果您需要将int和浮点数存储为不同类型而不是仅存储 浮点表示整数,然后你需要尝试捕捉,看看你是否可以 解析为int,如果不是则解析为float:

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