我目前正在使用Julia进行编码,在某些时候,我必须在命令提示符处运行一个.exe程序。让我们将该程序命名为“ x.exe”。我决定将以下行添加到我的代码中,以便朱莉娅在代码中执行程序:
run(pipeline('x.exe input.txt 5 500',stdout="output.txt"))
代码工作正常,但是我必须手动插入值“ 5”和“ 500”,分别是input.txt文件中的行数和输入中每行的项数。 txt文件。它们也是存储在Julia中的数组的行数和列数。
代码是否可以直接读取这些数字?我尝试过
writedlm("size.txt", transpose([size(Array)[1],size(Array)[2]])," ")
然后
run(pipeline('x.exe input.txt type size.txt',stdout="output.txt"))
但它不起作用。...
答案 0 :(得分:2)
您可以使用@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"))
如您所见,Julia使用与Shell相同的方法将变量插值到命令中(请参见Julia manual section on Running External Programs)。