朱莉娅:如何从朱莉娅代码执行系统命令?

时间:2019-03-02 07:45:38

标签: julia

我创建了一个字符串

x = "ls"

,我想执行x作为来自Julia的字符串。我怎么做?

ls只是我实际上想执行一个更复杂的命令的示例,所以请不要告诉我pwd()是有效的。

实际命令可能是split c:/data/Performance_All/Performance_2000Q1.txt -n l/3 -d /c/data/Performance_All_split/Performance_2000Q1.txt

2 个答案:

答案 0 :(得分:4)

您可以简单地将runCmd对象一起使用。您可以使用字符串通过Cmd和插值运算符``或通过$构造函数来创建Cmd对象。

这是一个例子。您可能还是要检查文件路径。

x = "split"
path1 = "c:/data/Performance_All/Performance_2000Q1.txt"
option1 = "-n l/3"
option2 = "-d"
path2 = "/c/data/Performance_All_split/Performance_2000Q1.txt"
run(`$x $path1 $option1 $option2 $path2`) # remember the backticks ``

即使文件路径中有空格,您也不必使用引号。命令对象运行程序并将参数直接传递给程序,而不是通过shell。

您可能需要阅读相关的手册条目。 https://docs.julialang.org/en/v1/manual/running-external-programs/

答案 1 :(得分:3)

df11 = df1[df1.index.isin(df2.index)].copy() df11[df2.columns] = df11[df2.columns].mul(df2) print (df11) a b t 2 40 40 4 2 50 50 5 2 60 60 6 3 140 140 7 3 160 160 8 3 180 180 9 4 300 300 10 4 330 330 11 可用于运行命令并读取其结果。

您可以在test/spawn.jl

中找到运行命令的用法示例

重要的是将命令及其参数包装在反引号中。 例如

Base::read