我目前正在使用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/

10-13 06:14