今天碰到一个至今我见过的最大的数据表,四百多列,五千多行。我想把这个表用IDL从文件里读出来,由于中间混杂了字符串,所以不得不用格式读入的办法。
好在这个表有详细的格式说明,我省了不少事。但是我直接把格式说明的内容拷到程序里之后老是出错。于是我拷了表的前几列到另一个文件,让程序只读这几列。
这样我很容易就发现,原来表中有的列之间有个空列,没有明确说明。把这个空列考虑进去,读这几列就没什么问题了。但是把四百多列都做了这个处理之后还是不行。于是只能用最土的办法——少量添加,先读五列,然后十列……然后就可以找到问题所在。最开始发现的问题是,IDL中的字符串是需要定义的,否则默认是数(虽然数的类型不用定义)。但是改正这个问题之后还是不能工作,后来我发现,在列数达到200列左右的时候(不是个整百或整十的数),程序报错,说列数
太多。所以,看来IDL处理的列数是有上限的。没有办法,只能把表拆分,放在两个文件里面分别读出。
下班之后加班两个小时,终于把程序写出来了,正常工作。今天这番折腾也算有点价值,以后处理处理大数据表就有头绪了。
https://blog.sciencenet.cn/blog-117333-609545.html
上一篇:
自己把科研做了?下一篇:
IDL读大数据表(外一则)