从文件中读取一行

Read a line from a file

我正在尝试弄清楚如何使用 guile 方案从文件中读取一行。

当我要求它 "read port" 或 "read-char port" 时,它成功读取。

guile -c '(let ((port (open-input-file "foo.txt"))) (display (read port)) (newline) (close-port port))'

但是,当我要求它读取行时,它失败了。

guile -c '(let ((port (open-input-file "foo.txt"))) (display (read-line port)) (newline) (close-port port))'

有谁知道我做错了什么?我目前在foo.txt所在目录

您的代码失败并显示消息 ERROR: Unbound variable: read-line,这意味着 readline 没有定义。

必须使用 (use-modules (ice-9 rdelim)) 形式加载函数 read-line 才能使用它。 (https://www.gnu.org/software/guile/manual/html_node/Input-and-Output.html)

这将起作用:

guile -c '(use-modules (ice-9 rdelim)) (let ((port (open-input-file "foo.txt"))) 
(display (read-line port)) (newline) (close-port port))'