我可以使用 Mathematica 的 StringReplace 来写入文本文件的行号吗?

Can I use mathematica's StringReplace to write the row number of a text file?

我有一个 mathematica 程序,它的输出是一个文本文件,由于某些原因将在 python 中用作输入。

savedXText = ExportString[savedX, "Text"];    
savedXText2 = 
  StringReplace[
   savedXText, {"[" -> "(", "]" -> ")", 
    "t" -> "m.lammda[i]*180/np.pi", "u" -> "m.phi[i]*180/np.pi"}];

Export["testOutputX.txt", savedXText2]; 

testOutputX.txt 有许多行可以变化。我需要写的不仅仅是 m.lammdam.phi 行数。如果文件有三行,我需要 m.lammda1 and m.phi1, m.lammda2 and m.phi2and m.lammda3 and m.phi3 in each row of testOutputX.txt

我的想法是使用for循环,对savedX的每一行进行充电,然后进行字符串替换,其中用于循环计数的变量值以文本形式写入[=23] =].

我构建了一个 for 循环,它选择 savedX 的每一行并执行 StringReplace

savedXReplaced = Table[RandomInteger[i, lengthLoop], {i, 1, lengthLoop}];
    For[i = 1, i < lengthLoop + 1, i++, 
 savedXTextTemp = ExportString[savedX[[i]], "Text"]; 
 savedXTextTemp2 = 
  StringReplace[
   savedXTextTemp, {"[" -> "(", "]" -> ")", 
    "t" -> "m.lammda[i]*180/np.pi", "u" -> "m.phi[i]*180/np.pi"}]; 
 Print[savedXTextTemp2]; savedXReplaced[[i]] = savedXTextTemp2]

然而,我已经查看了 StringReplacedocumentation,但我无法找到如何写入 i 的值,这个 for 循环中使用的变量.

有办法吗?

这应该可以解决问题。

For[i = 1, i < lengthLoop + 1, i++,
 savedXTextTemp = ExportString[savedX[[i]], "Text"];
 savedXTextTemp2 = StringReplace[
   savedXTextTemp, {"[" -> "(", "]" -> ")",
    "t" -> StringJoin["m.lammda", ToString[i], "*180/np.pi"],
    "u" -> StringJoin["m.phi", ToString[i], "*180/np.pi"]}];
 Print[savedXTextTemp2]; savedXReplaced[[i]] = savedXTextTemp2]