0

我想做的是从.dat文件中读取列。我已经能够使用scitools.filetable.read_columns(). 我遇到的问题是我的.dat文件的第一行包含strings. 如何跳过第一行?

因此,对于一个简短的示例,我有以下.dat文件:

a   b   c   d   e
1   3   5   7   9
2   4   6   8  10

从这种类型的.dat文件中,我想为没有string. 当 .dat 文件不包含a,b,c,d,e它时,它会很容易,因为它只是:

import scitools.filetable

fp = open("blabla.dat", "r")

a, b, c, d, e = scitools.filetable.read_columns(fp)

现在a会读:[1 2]

a但是,当我尝试在、bcde是文件的一部分时执行相同操作时.dat,如我的示例所示,scitools它不起作用,因为它无法将 a 转换string为 a float。如何在没有第一行的情况下打开文件或创建所需的列?

4

1 回答 1

1

用于fp.next进一步推进一行

fp以文本模式打开的文件的文件描述符一样,迭代它会逐行读取它。

您可以要求fp进一步阅读一行fp.next(),然后将其传递给您的`scitools.filetable.read_colums(fp)

修改后您的代码将如下所示:

import scitools.filetable

fp = open("blabla.dat", "r")
fp.next()

a, b, c, d, e = scitools.filetable.read_columns(fp)

或使用上下文管理器关闭文件:

import scitools.filetable

with open("blabla.dat", "r") as fp:
    fp.next()

    a, b, c, d, e = scitools.filetable.read_columns(fp)
于 2014-07-18T09:18:25.400 回答