【问题标题】:Reading specific data from a text file in python从python中的文本文件中读取特定数据
【发布时间】:2020-07-01 01:09:10
【问题描述】:

我有一个文本文件,它是带有标题的两列数据(标题是“x”和“x-y 数据”)。如何仅读取从第四行到文件末尾的第二列(以跳过标题)?我只需要数字。 我需要一个简单的解决方案,因为我需要在 ABAQUS 脚本中使用此代码。 这是我的文本文件:

              X              XYData-201   

            0.                 0.         
            3.99845E-03        0.         
            7.98118E-03        0.         
           11.9483E-03         0.         

【问题讨论】:

标签: python


【解决方案1】:

你可以像这样转一个字符串

"            11.9483E-03         0.           "

通过执行以下操作进入列表 [0.011948, 0.0](假设 s 是上面的字符串)

map(float, s.split())

分为几个步骤:

  • s.split() 在本例中将 s 转换为 ['11.9483E-03', '0.']

  • map(float, s.split()) 通过将每个元素转换为浮点数,将上面的数组转换为列表 [0.011948, 0.0]。

如果您只需要第二列的数字,您可以这样做:

float(s.split()[1])

所以假设文件名为 blah.txt,要读取从第四行开始的第二列中的所有数字,您可以:

 with open('blah.txt', 'r') as f:
     for i, line in enumerate(f):
         if i < 4:
             continue  # we are in line 1-3, skip
         print float(line.split()[1])

如果您想要第二列中所有数字的列表,您可以使用列表推导:

 numbers = [float(line.split()[1]) for line in open('blah.txt', 'r').readlines()[4:]]

(注意:假设您使用的是 Python 2.7,否则 map 将不会返回列表,而 print 将需要括号)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多