最简单/最清晰/最简单/最短的方法是什么?A)创建临时文件,B)写一个字符串,然后C)返回新创建的文件名?
这是迄今为止我所获得的最好成绩:
fname,io = mktemp(); write(io, "<contents>");
# use fname...
我可以用do end
做一些聪明,有趣的事吗?有人有更好的建议吗? :)谢谢!
答案 0 :(得分:4)
你可以做到
f = tempname()
write(f, "Hello")
如果需要“单行”,则可以放在同一行
f = tempname(); write(f, "Hello")
答案 1 :(得分:2)
一种方法是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"
糟糕!上面的do-block方式会在完成后自动删除临时文件。这不应该只是自动close
io像open
?!