如何覆盖或删除writefile()调用使用的文件?

时间:2015-06-17 11:58:52

标签: maxima

我使用以下命令将屏幕输出保存到文件

writefile("file.txt"),
tex(expression),
closefile()

上面会自动将tex()的输出发送到文件。这一切都很好,我想要的。 (侧点:它每次都会向文件发送一条恼人的NIL行,我以后必须解析它。)

现在,再次运行上面的代码时,会附加文件,这不是我想要的。我想要每次都覆盖文件,或者如果有办法删除文件,那么我可以在之前调用delete。

我查看了帮助而无法找到删除文件的命令,我也看不到告诉writefile()覆盖文件的选项?

是否有选择或方法?我在Windows 7,Maxima版本:5.36.1 Lisp:SBCL 1.2.7

1 个答案:

答案 0 :(得分:2)

我想您正在尝试将tex的输出捕获到文件中。如果是这样,这里还有其他两种方法:

tex (expr, destination);

其中destination是文件名(附加)或流,由openaopenw创建并由close关闭。顺便说一下,destination可以是false,在这种情况下tex会返回一个字符串。

with_stdout (destination, tex (expr));

其中destination是文件名(由全局标记file_output_append确定的附加或修改)或流。

如果您想混合一些非with_stdout生成的输出,例如tex

print("% some commentary");可能会有用。