Комментарии в файлах данных

По мере продвижения проекта неизбежно накапливается масса файлов с данными, которые генерируются и используются различными программами. Когда число таких файлов переваливает за некоторую критическую отметку, неизбежно начинаешь в них запутываться. Как этого избежать?

Стандартным решением является поддержание содержательной структуры каталогов с данными проекта и использование единой схемы наименования файлов. Однако трудно уместить всю необходимую информацию в имени файла, да и сам потом не вспомнишь, что же записано в файле с именем вроде сс_g902_g1815sc8prtm.faa.mscaln.

Поэтому удобно иметь возможность добавлять произвольные комментарии к тем данным, с которыми работает программа, особенно если эта программа самописная или может быть легко модифицирована. Например, я часто в начало файла с данными добавляю строки, в которой указано какой программой файл был сгенерирован, краткое описание формата, значения использовавшихся параметров и т.д. Такие комментарии легко вставлять и автоматически.

Добавьте во все свои скрипты для чтения данных операторы, которые будут пропускать любую строку, начинающуюся с определенного символа комментария. В качестве символа комментариев я предпочитаю использовать #(стиль bash, Pеrl, R), но можно использовать и знак % (стиль Matlab), // (стиль C++, Java). Главное, выбрать сивол обозначающий комментарий и пользоваться последовательно только им.

Получится что-нибудь вроде этого (цикл чтения файла по строкам):

open(INFILE,$inputfile) or die "error opening $inputfile";
while () {
  my $str=$_; chomp($str);
  my $pos=index $str, "#";
  if ($pos==0) { next; } #skipping commentaries (line begins with ‘#’)

  my @line=split(/\t/,$str); # parsing tab-separated string
# здесь необходимая обработка ...
}
close(INFILE);

Можно, конечно, построить регулярное выражение для более гибкой обработки комментариев, но обычно достаточно и такого простого решения.