【问题标题】:Parsing a line from an ASCII HDR file python从 ASCII HDR 文件 python 中解析一行
【发布时间】:2017-03-29 15:46:25
【问题描述】:

我很难从我拥有的 hdr 文件中解析一行。当我像下面的代码一样打印读取(数据)时,命令窗口会输出 hdr 文件的内容。但是,当我尝试解析一行或一列时,就像下面的脚本一样,它在命令窗口中什么也不输出。

import numpy as np
import matplotlib.pyplot as plt

f = open('zz_ssmv11034tS__T0001TTNATS2012021505HP001.Hdr', 'r')
data = f.read()
print (data)

for line in f:
    columns = line.split()
    time = float(columns[2])
    print (time)

f.close()

【问题讨论】:

    标签: python parsing matplotlib ascii


    【解决方案1】:

    删除这两行并再次执行您的代码:

    data = f.read()
    print (data)
    

    然后改变你的循环:

    for line in f.readlines():
        columns = line.split()
        time = float(columns[2])
        print (time)
    

    调用 read() 读取整个文件并将读取光标留在文件末尾(没有更多内容可读取)。如果你想一次读取一定数量的行,你可以使用 readline(), readlines()

    阅读帖子Why can't I call read() twice on an open file?

    【讨论】:

    • 删除print (data)这一行将没有效果;此时光标已经位于文件末尾。
    • 他说“当我在命令窗口下面的代码中打印读取(数据)时,会输出 hdr 文件的内容”并且在光标指向文件末尾之后,我的意思是删除这一行再试一次
    • 您的回答开始于“删除此行:print (data)”。这样做绝对不会改变任何事情。
    • @DSM 对不起,这是我的错,我改了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    相关资源
    最近更新 更多