【问题标题】:converting input file to list将输入文件转换为列表
【发布时间】:2013-02-13 02:02:15
【问题描述】:

我有一个包含以下条目的输入文件文本

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]

请帮帮我

【问题讨论】:

标签: python


【解决方案1】:
with open('filename.txt', 'r') as f:
    numbers = [float(x.strip()) for x in f]

【讨论】:

  • 您不需要 strip() - float() 自动执行此操作。
  • with open('filename.txt') as f: numbers = map(float, f)
  • @MarkusMeskanen -- 你试过了吗?
  • @Root Ye,它只给了我字符串"6.56\n"(显然还有其他数字)
  • @Volatility Uuupsie,对不起,我读错了您的第一条评论:D 我以为您说 strip() 和 float() 都是无用的,因为从文件中自动读取。我的错,应该更加专注:P
【解决方案2】:

您可以通过 readlines 直接从文件中读取它(假设每行一个值)并将其转换为浮点数。

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

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

【讨论】:

    【解决方案3】:

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

    values = []
    with open('values.txt', 'r') as f:
        values = [line.strip() for line in f]
    

    【讨论】:

      【解决方案4】:
      [ float(i) for i in open('your_file','r').read().split('\n') if i ]
      

      【讨论】:

      • 这不会留下一个打开的文件吗?
      • 不确定...但不会出现在lsof。
      猜你喜欢
      • 2014-05-10
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 2020-01-05
      • 1970-01-01
      • 2017-09-06
      • 2018-08-15
      相关资源
      最近更新 更多