julia写一个临时文件并得到它的名字?

julia写一个临时文件并得到它的名字?,julia,Julia,最简单/清晰/最简单/最短的方法是什么A)创建临时文件,B)向其写入字符串,C)返回新创建的文件名 这是迄今为止我得到的最好的: fname,io = mktemp(); write(io, "<contents>"); # use fname... fname,io=mktemp();写(io,“”); #使用fname。。。 我能用do end做些聪明、新奇的事情吗?有谁有更好的建议吗?:)谢谢 一种方法是mktemp().|>(路径->路径,io->(写入(io)”;关闭(

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

这是迄今为止我得到的最好的:

fname,io = mktemp(); write(io, "<contents>");
# use fname...
fname,io=mktemp();写(io,“”);
#使用fname。。。
我能用
do end
做些聪明、新奇的事情吗?有谁有更好的建议吗?:)谢谢

一种方法是
mktemp().|>(路径->路径,io->(写入(io)”;关闭(io)))|>首先
(安全关闭io只需要1个分号/“行”)。我猜
do
块主要用于多行代码:

julia> mktemp() do path,io 
           write(io, "<contents>")
           path
       end
"/var/folders/ft/nd_bm3z52152069y78vb71280000gn/T/tmpKLWTBD"
julia>mktemp()do路径,io
写(io,“”)
路径
结束
“/var/folders/ft/nd_bm3z52152069y78vb71280000gn/T/tmpKLWTBD”
哎呀!上面的do块方式在完成时自动删除临时文件。这难道不应该像打开io一样自动关闭io吗

一种方法是
mktemp().|>(路径->路径,io->(写入(io)”;关闭(io)))|>首先
(安全关闭io只需要1个分号/“行”)。我猜
do
块主要用于多行代码:

julia> mktemp() do path,io 
           write(io, "<contents>")
           path
       end
"/var/folders/ft/nd_bm3z52152069y78vb71280000gn/T/tmpKLWTBD"
julia>mktemp()do路径,io
写(io,“”)
路径
结束
“/var/folders/ft/nd_bm3z52152069y78vb71280000gn/T/tmpKLWTBD”
哎呀!上面的do块方式在完成时自动删除临时文件。这难道不应该像打开io一样自动关闭io吗

你能行

f = tempname()
write(f, "Hello")
如果需要“一行”,可以放在同一行上

f = tempname(); write(f, "Hello")
你能行

f = tempname()
write(f, "Hello")
如果需要“一行”,可以放在同一行上

f = tempname(); write(f, "Hello")

不知道
tempname()
!谢谢,这很好。@NHDaly似乎是一个很好的答案。它值得检查吗?是的,当然。谢谢你的提醒,@JuliaLearner!:)不知道
tempname()
!谢谢,这很好。@NHDaly似乎是一个很好的答案。它值得检查吗?是的,当然。谢谢你的提醒,@JuliaLearner!:)对于
mktemp(f::Function,parent=tempdir())
方法(这是
do
表单调用的),文档会说
并在完成时删除临时文件。我可以看出其中的逻辑-此表单是执行涉及临时文件的小操作的快速简便方法,而如果您需要临时文件在更长更复杂的代码中保持,则另一个表单就在那里。
mktemp
doc确实说了
,并在完成后删除
mktemp的临时文件(f::Function,parent=tempdir())
方法(这是
do
表单调用的方法)。我可以看到其中的逻辑-此表单是执行涉及临时文件的小操作的快速简便方法,而如果您需要临时文件在更长更复杂的代码中持久化,则另一个表单就在那里。