You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Common Lisp(ACL)中读取含空白单元格的CSV表格

解决ACL读取含空白单元格CSV的问题

方案1:用ACL内置CSV读取工具(优先选这个)

ACL自带专门解析CSV的命令,能自动识别空白单元格(不管是空值还是带空格的单元格),比手动写read-line循环靠谱太多,还能高效处理大型文件。示例代码:

OPEN DATA "你的文件路径.csv" TYPE CSV DELIMITER "," QUALIFIER ""
// 读取全部记录到数据集
READ ALL
// 验证结果:空白单元格会显示为<空值>,不会和空格混淆
LIST FIELDS 对象名, 属性1, 属性2, ...
  • 要是你的CSV里空白单元格是用引号包裹的空串(比如"obj1",,"val2"),把QUALIFIER改成"就行,保证空值解析正确。
  • 大型文件不用怕性能问题,ACL的CSV读取逻辑是优化过的,比手动循环高效得多。

方案2:手动处理read-line输出(仅适合特殊格式场景)

如果非得用read-line循环,别直接按空格拆分字符串,要按CSV的分隔符(一般是逗号)来拆分,这样空白单元格会被识别为空字符串,而非空格。示例代码:

FILE OPEN INPUT "你的文件路径.csv" TO input_file
LOOP
    READLINE input_file TO line_var
    IF END OF FILE THEN LEAVE
    // 按逗号拆分整行,保留空单元格
    SPLIT line_var BY "," INTO arr_var
    // 第一个元素是对象名称
    obj_name = arr_var[1]
    // 后续元素是属性,空单元格会存为"",不会被当成空格
    prop1 = arr_var[2]
    prop2 = arr_var[3]
    // 这里写你的业务处理逻辑
END LOOP
FILE CLOSE input_file
  • 注意:如果CSV里有带逗号的单元格(用引号包裹的那种),这个方法会误拆分,这时候还是老老实实用方案1的内置工具。

额外提示

  • 先确认你的CSV分隔符:有些用制表符(Tab),要对应修改DELIMITER或者SPLIT的参数。
  • 处理大型文件时,尽量用批量读取(比如READ ALL),别逐行循环,性能差很多。

内容的提问来源于stack exchange,提问作者ponipei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 09:30:08