Library of Babel (org-mode)
This is my org-mode Library of Babel.
File I/O
Reading and writing files
Read the contents of the file at file. The :results vector and
:results scalar header arguments can be used to read the contents of
file as either a table or a string.
(if (string= format "csv")
(with-temp-buffer
(org-table-import (expand-file-name file) nil)
(org-table-to-lisp))
(with-temp-buffer
(insert-file-contents (expand-file-name file))
(buffer-string)))
Write data to a file at file. If data is a list, then write it
as a table in traditional Org-mode table syntax.
(flet ((echo (r) (if (stringp r) r (format "%S" r))))
(with-temp-file file
(case (and (listp data)
(or ext (intern (file-name-extension file))))
('tsv (insert (orgtbl-to-tsv data '(:fmt echo))))
('csv (insert (orgtbl-to-csv data '(:fmt echo))))
(t (org-babel-insert-result data)))))
nil