Использование объекта Julia в cmd - PullRequest
0 голосов
/ 10 февраля 2019

В настоящее время я пишу в Julia, и в какой-то момент мне нужно запустить программу .exe из командной строки.Давайте назовем эту программу "x.exe".Я решил добавить следующую строку в мой код для Юлии, чтобы выполнить программу внутри кода:

run(pipeline('x.exe input.txt 5 500',stdout="output.txt"))

Код работает отлично, но я должен вручную вставить значения "5 "и" 500 ", которые являются соответственно количеством строк в файле input.txt и количеством элементов каждой строки в файле input.txt.Они также представляют собой количество строк и столбцов массива, хранящегося в Юлии.

Есть ли способ, позволяющий коду читать эти числа напрямую?Я попытался

writedlm("size.txt", transpose([size(Array)[1],size(Array)[2]])," ")

, а затем

run(pipeline('x.exe input.txt type size.txt',stdout="output.txt"))

, но это не работает ....

1 Ответ

0 голосов
/ 10 февраля 2019

Вы можете использовать @sprintf, например, следующим образом:

julia> using Printf

julia> x = [[1,2,3], [4,5,6]]
2-element Array{Array{Int64,1},1}:
 [1, 2, 3]
 [4, 5, 6]

julia> a = @sprintf("%d", size(x)[1][1])
"2"

julia> b = @sprintf("%d", size(x[1])[1][1])
"3"

julia> run(pipeline(`x.exe input.txt $a $b`,stdout="output.txt"))

Как видите, Юлия использует тот же метод для интерполяции переменных в команды, что и оболочка (см. Руководство Юлия).раздел «Запуск внешних программ» ).

...