普通ASCII文件

来自Shiyin's note
147.197.230.110讨论2013年9月12日 (四) 10:50的版本 →‎readcol
跳到导航 跳到搜索

read_ascii

read_ascii可方便读取,读取后成为一个数据结构,默认全部是浮点数,如果需要复杂的数据结构需要使用 TEMPLATE= 关键词

关键词

  • DATA_START: 从某一行开始读
  • COMMENT_SYMBOL: 注释行
  • TEMPLATE: 可以由ASCII_TEMPLATE给出


readcol

astro_lib中的一个可以指定格式,读入一个规则文件的某一列,或某几列的程序

IDL> FMT = 'A,I,I,F,I,I,F'
IDL> READCOL,'position.dat',F=FMT,name,hr,min,sec,deg,dmin,dsec  
 A - string data, B - byte, D - double precision, F- floating point
 I - short integer, L - longword, LL - 64 bit integer, 
 U - unsigned short integer, UL - unsigned long integer 
 Z - longword hexadecimal, and X - skip a column.

read_col

我自己写亮一个read_col 程序,可以只读如一个文件的指定列,比如第你列 例:读入filename文件的第2列,格式是双精度数

arr=read_col('filename',2,,type='dbl')
  • 文件要求空格分列
  • 列的计数从1开始
  • 不给关键词type,那么读入的是字符串格式

read_txt

我自己写了一个read_txt文件:Read txt.pro.txt程序,可以智能的将一个N行M列的数据文件(空格分隔)读为一个data[N,M]的flota array。

readline

一个把文件按照行的模式读入的程序,输出是一个字符串数组,可以结合col_struct使用

IDL>readline,'file.txt',lines,count=Nline


col_struct

将一行由空格分开的数据读入一个结构 来自http://astro.berkeley.edu/~johnjohn/idl.html#COL_STRUCT

IDL> spawn,'cat data.txt', lines
IDL> struct = col_struct(lines, ['star','ra','dec','vmag','notes'] , types=['a','f','f','f','a'])