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

how to overwrite, or delete the file, used by writefile() calls?

我使用以下方法将屏幕输出保存到文件

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

上面的代码自动将 tex() 的输出发送到文件。这一切都很好,也是我想要的。 (旁白:它还会每次向文件发送一个烦人的 NIL 行,我不得不稍后解析它)。

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

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

是否有解决此问题的选项或方法?我在windows7、千里马版本:5.36.1 口齿不清:SBCL 1.2.7

我猜您正试图将 tex 的输出捕获到一个文件中。如果是这样,这里有几种其他方法:

tex (expr, destination);

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

with_stdout (destination, tex (expr));

这里再次 destination 是一个文件名(附加或破坏,由全局标志 file_output_append 确定)或流。

如果您想混合一些不是由 tex 生成的输出,例如 print("% some commentary");.

with_stdout 可能很有用