用给定的数值参数标记文件名
Labeling the name of a file with a given numerical parameter
使用 python 我可以通过以下方式保存带有给定参数 t
名称标签的文件
import matplotlib.pyplot as plt
fig=plt.figure(1)
plt.plot([1,2,3,4])
t=0.1
fig.savefig("filename%f.png" % t)
保存图形的名称类似于"filename0.1000.png"。
我怎样才能对 wolfram mathematica 做同样的事情?
换句话说, %f
的 mathematica 等价物是什么?
在 Mathematica 中你可以使用 StringTemplate
:
filenameTemplate = StringTemplate["filename`n`.dat"];
filename = filenameTemplate[<|"n" -> 1234|>]
(* "filename1234.dat" *)
这将创建一个 filename
,其中的数字来自 Association
:
<|"n" -> 1234|>
如果您希望输出与示例中的输出完全相同:
t = 0.1;
"filename" <> ToString@NumberForm[t, {1, 4}] <> ".png"
(* filename0.1000.png *)
编辑
StringTemplate
如果您需要在字符串中进行多次替换(不那么混乱的字符串连接)会更好,如果您需要在代码的不同位置使用相同的模板,则可以避免一些重复。但对于后一种情况,最好将文件名生成封装在一个单独的函数中。
StringTemplate
有指定 CombinerFunction
和 InsertionFunction
的选项。默认的 InsertionFunction
是 TextString
所以不需要 ToString
.
t = 0.1;
filenameTemplate = StringTemplate["filename`t`.png"];
filename = filenameTemplate[<|"t" -> NumberForm[t, {1, 4}]|>]
(* filename0.1000.png *)
模板系统还可以做更多的事情。有关详细信息,请参阅 docs。
使用 python 我可以通过以下方式保存带有给定参数 t
名称标签的文件
import matplotlib.pyplot as plt
fig=plt.figure(1)
plt.plot([1,2,3,4])
t=0.1
fig.savefig("filename%f.png" % t)
保存图形的名称类似于"filename0.1000.png"。
我怎样才能对 wolfram mathematica 做同样的事情?
换句话说, %f
的 mathematica 等价物是什么?
在 Mathematica 中你可以使用 StringTemplate
:
filenameTemplate = StringTemplate["filename`n`.dat"];
filename = filenameTemplate[<|"n" -> 1234|>]
(* "filename1234.dat" *)
这将创建一个 filename
,其中的数字来自 Association
:
<|"n" -> 1234|>
如果您希望输出与示例中的输出完全相同:
t = 0.1;
"filename" <> ToString@NumberForm[t, {1, 4}] <> ".png"
(* filename0.1000.png *)
编辑
StringTemplate
如果您需要在字符串中进行多次替换(不那么混乱的字符串连接)会更好,如果您需要在代码的不同位置使用相同的模板,则可以避免一些重复。但对于后一种情况,最好将文件名生成封装在一个单独的函数中。
StringTemplate
有指定 CombinerFunction
和 InsertionFunction
的选项。默认的 InsertionFunction
是 TextString
所以不需要 ToString
.
t = 0.1;
filenameTemplate = StringTemplate["filename`t`.png"];
filename = filenameTemplate[<|"t" -> NumberForm[t, {1, 4}]|>]
(* filename0.1000.png *)
模板系统还可以做更多的事情。有关详细信息,请参阅 docs。