将数据写入方案中的非现有文件(通过程序创建后)

yak*_*aku 2 lisp scheme chicken-scheme

我已经制作了一个简单的程序来将文本写入现有文件:

;; 写入现有文件

(define write-to-a-file
  (lambda (path txt)
    (call-with-output-file path
      (lambda (output-port)
        (write txt output-port)))))
Run Code Online (Sandbox Code Playgroud)

但我想修改它,以便,如果该文件不存在,则应该创建它.如果文件存在,那么它应该写入文件而不删除文件的先前内容.我正在写鸡计划.有任何想法吗?

Ósc*_*pez 5

尝试鸡肉计划:

(define (write-to-a-file path txt)
  (call-with-output-file path
    (lambda (output-port)
      (write txt output-port))
    #:append))
Run Code Online (Sandbox Code Playgroud)

或者这对于Racket来说:

(define (write-to-a-file path txt)
  (call-with-output-file path
    (lambda (output-port)
      (write txt output-port))
    #:exists 'append))
Run Code Online (Sandbox Code Playgroud)