【问题标题】:How do I save this text file into a list in python如何将此文本文件保存到python中的列表中
【发布时间】:2014-09-28 05:24:04
【问题描述】:

我有一个包含 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']

【问题讨论】:

  • 根据您的示例输出,您的文本文件只有一列数字,它们都是整数。没有制表符分隔符。不过没关系,你已经得到了很多有用的答案:)

标签: python list io split


【解决方案1】:

可以在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"], ...]

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 这很好,但我需要“数组”中的值是浮点数
    • 如果这解决了您的问题,请点击答案旁边的勾号将其选为答案...
    • 会的。抱歉,这是新手。
    【解决方案3】:
    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,如果不是,则解析为 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多