我目前正在 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"))
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,Julia 使用与 shell 相同的方法将变量插入到命令中(请参阅Julia 手册中有关运行外部程序的部分)。
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |