我想要的是从.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
,b
,c
,d
和e
成为{{{}的一部分时,我尝试做同样的事情1}}文件,如我的示例中所示,.dat
不起作用,因为它无法将scitools
转换为string
。如何在没有第一行的情况下打开文件或创建所需的列?
答案 0 :(得分: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)