我目前正在使用Julia进行编码,在某些时候,我必须在命令提示符处运行.exe程序。让我们将该程序命名为“x.exe”。我决定将以下行添加到我的代码中,以便 Julia 在代码中执行程序:run(pipeline('x.exe input.txt 5 500',stdout="output.txt"))
该代码可以正常工作,但是我必须手动插入值“5”和“500”,分别是input.txt文件中的行数和input.txt文件中每行的项数。它们也是存储在Julia中的数组的行数和列数。
代码有没有办法直接读取这些数字?我试过了writedlm("size.txt", transpose([size(Array)[1],size(Array)[2]])," ")
然后run(pipeline('x.exe input.txt type size.txt',stdout="output.txt"))
但这不起作用...
最佳答案
您可以使用@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)。
关于cmd - 在cmd中使用Julia对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54612343/