朱莉娅:管道站立输入从字符串处理

问题描述 投票:0回答:1

在我的Julia代码中,我想调用各种外部命令,这些命令从标准输入获取数据并在标准输出上产生输出。我想将数据存储在字符串中,并将它们读取和写入这些进程。确切地说,让我们说这个过程是tr [a-z] [A-Z]。我的包装将是

function toupper(string)
    fn, fh = mktemp()
    print(fh, string)
    close(fh)
    result = pipeline(fn, `tr [a-z] [A-Z]`) |> readstring
    rm(fn)
    result
end

(这是Julia 0.6语法;用readstring替换io->read(io,String)

我想要一个更清洁的方式来做这件事;理想情况下,命令printer(string)创建一个产生字符串内容的流,这样上面的命令就会被编码为

toupper(string) = pipeline(printer(string), `tr [a-z] [A-Z]`) |> readstring

(实际上,会有很多像上面这样的命令,出于效率原因,我希望避免创建和删除所有这些临时文件)

julia io-redirection
1个回答
0
投票

好的,我找到了:打印机(字符串)可以编码为IOBuffer(string)

© www.soinside.com 2019 - 2024. All rights reserved.