Добавление в цикл: пропуск несуществующих файлов
Этот вопрос связан с: Импорт временных рядов через цикл (pot. Generic)
Я хочу импортировать произвольное количество файлов, расположенных в одном и том же каталоге, но не помеченных непрерывно, например: file_1,file_4,file_3001
У меня есть небольшой скрипт импорта, который работает для последовательных файлов, подобных следующим:
scalar first = 1 #the first file is file_1.tsv
scalar last = 5000 #the last file
base_path = "c:/results/file_"
sprintf temp_path "%s%d.tsv",base_path,first
open @temp_path --preserve
setobs 1 1 --special-time-series
loop for (i=first+1;i<=last;i+=1) --quiet
sprintf temp_path "%s%d",base_path,i
append @temp_path
endloop
Теперь, когда я использую его в настройках, как указано выше (с отсутствующими файлами), я получаю сообщение об ошибке, и сценарий останавливается:
Не удалось открыть...
Можно ли как-то продолжить / поймать ошибку и "продолжить"?
1 ответ
Решение
Я думаю, что команда "catch" может делать то, что вам нужно. Взгляните на следующий код:
# Creating files
open australia.gdt
store 0.gdt PAU
store 1.gdt PUS
store 2.gdt E
store 4.gdt IAU
store 8.gdt IUS
store 10.gdt le
# Opening created files
open 0.gdt
loop i = 1..10
catch append $i.gdt
endloop