文件处理
炼气散人
等儿子高考后,或许会回来
展开
-
newLISP 递归访问目录树
一个简单的递归函数,可以遍历目录树中的所有文件,传递另一个处理函数,该函数可以接受文件路径作为参数,从而决定如何处理。下面是调用例子:#!/usr/bin/newlisp (load "file.lsp") (define (show-file file原创 2014-08-31 01:28:06 · 2824 阅读 · 0 评论 -
newLISP 删除目录
这是个很简单的需求,可是API只提供了一个几乎没什么用的函数remove-dir 要求目录必须为空。因此我写了一个函数来递归删除目录树:(define (make-sure-folder-path-end-of-slash dir-path) (if (!= (last dir-path) "/") (push "/" dir-path -1) ) dir-path )原创 2014-09-06 15:07:17 · 2310 阅读 · 0 评论 -
查找某个时间点范围内修改的文件
经常由于磁盘空间不足的原因,需要删除旧文件,因此希望有一个函数,能够查找到某个时间点之前的文件,并删除之。用newLISP来实现的话,需要类似这样的功能:(FILE:locate-modified-file file-path start-time end-time)start-time指的是修改时间的开始, end-time指的是修改时间的结束,按照习惯,这是一个左闭右开区间: [start-t原创 2014-08-31 01:46:51 · 6846 阅读 · 0 评论 -
newlisp 获取文件名
newlisp对文件操作的支持有限,还是要自己做一些额外的工作。现在来获取linux下的文件名。输入是文件路径,返回文件名。;; get the file name without path (define (file-name file-full-path) (unless (file? file-full-path) (throw-error (append "file doesn't e原创 2013-02-24 21:25:29 · 3432 阅读 · 0 评论 -
newLISP文件合并
需求是几百个文件,命名规则类系下面的文件名:dailydata_20140320.txt通过newLISP合并,首先是自动生成这些文件名,然后用read-file读取内容,再用append-file写入到一个文件中。注意删除上次运行的结果,也要注意有文件不存在的话需要出error.log日志。代码如下:#!/usr/bin/newlisp (set 'start-date "20140101 0原创 2014-09-18 15:48:15 · 2319 阅读 · 0 评论 -
newlisp读取文件性能测试
由于思考并发提升性能的问题,想到了要测试一下读取文件有多快/慢?下面的代码读取了一个csv文件,统计了每秒能读取读少行。结果还是不错的。#!/usr/bin/newlisp (setq t1 (date-value)) (set 'in-file (open "dw_product_dt.csv" "read")) (setq counter 0) (while (read-line in-fi原创 2016-07-22 22:47:27 · 1506 阅读 · 0 评论