2016-03-24 2 views
1

Я создаю пакет в Julia и слежу за разделом Документов Package Development.Файлы данных пакета Julia и абсолютные/относительные пути

Одна из моих функций открывается и читается в файле данных (mydata.txt), который я храню в каталоге пакета.

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

Я думал, что я мог бы просто сделать что-то вроде:

datapath = Pkg.dir("MyPkg") * "/data/" 

, чтобы получить абсолютный путь к файлу, но он по-прежнему не похоже на работу.

Каков правильный способ предоставления абсолютного пути к файлу данных в пакете?

+2

В какой ОС вы находитесь, какая версия Джулии и как это не работает? Как правило, при создании каталога вы должны использовать joinpath вместо конкатенации. –

+0

Mac. Джулия 0.4.5. В принципе просто не найти файл. Спасибо за подсказку «joinpath», я сделаю это. – user12202013

+1

'joinpath (Pkg.dir (« MyPkg »),« data »,« mydata.txt »)' должен работать. –

ответ

3

Для того, чтобы правильно обрабатывать файлы каталога мультиплатформенный и пути, использовать Джулии встроенный joinpath метод:

joinpath(Pkg.dir("MyPkg"), "data", "mydata.txt") 

В результате путь будет действовать на всех платформах.

Смежные вопросы