朱莉娅一线写一个临时文件,并得到它的名字?

NHD*_*aly 0 julia

最简单/最清晰/最简单/最简单的方法是什么?A)创建一个临时文件,B)向其中写入一个字符串,C)返回新创建的文件名?

这是我到目前为止所取得的最好成绩:

fname,io = mktemp(); write(io, "<contents>");
# use fname...
Run Code Online (Sandbox Code Playgroud)

有什么我可以做的聪明的幻想的事情do end吗?有人有更好的建议吗?:) 谢谢!

Gni*_*muc 5

一种方法是mktemp() .|> (path->path, io->(write(io, "<contents>"); close(io))) |> first(这只需要 1 个分号/“行”即可安全关闭 io)。我猜do块主要用于多行代码:

julia> mktemp() do path,io 
           write(io, "<contents>")
           path
       end
"/var/folders/ft/nd_bm3z52152069y78vb71280000gn/T/tmpKLWTBD"
Run Code Online (Sandbox Code Playgroud)

哎呀!上面的 do-block 方式会在完成后自动删除临时文件。这不应该自动closeio 喜欢吗open?!


fre*_*kre 5

你可以做

f = tempname()
write(f, "Hello")
Run Code Online (Sandbox Code Playgroud)

如果需要“单线”,则可以放在同一行上

f = tempname(); write(f, "Hello")
Run Code Online (Sandbox Code Playgroud)