Sqlite3导入以CRLF为行分隔符的CSV文件报错,如何解决?
解决SQLite导入CRLF分隔CSV的报错问题
SQLite的.separator命令确实不支持多字符的行分隔符,直接指定"\r\n"会触发报错,你可以用以下两种方法解决:
方法1:预处理CSV文件,转换行分隔符
把文件里的CRLF(\r\n)替换成LF(\n),就能用标准行分隔符导入:
- Linux/macOS环境:用sed或tr命令处理
# 直接修改原文件 sed -i 's/\r$//' your_file.csv # 或者生成新文件保留原文件 tr -d '\r' < input.csv > output.csv - Windows(PowerShell)环境:
(Get-Content input.csv) -replace "`r`n", "`n" | Set-Content output.csv -NoNewline
处理完成后,去掉行分隔符参数执行导入:
.mode ascii .separator "\t" .import your_processed_file.csv your_table_name
方法2:直接导入,不指定行分隔符
SQLite处理文本导入时,会自动忽略行尾的\r字符,仅以\n作为行分隔符。你可以直接省略行分隔符设置,只指定列分隔符为TAB:
.mode ascii .separator "\t" .import your_original_csv.csv your_table_name
这种方法无需修改原文件,多数场景下都能正常工作。
内容的提问来源于stack exchange,提问作者Kris Van Bruwaene
相关产品推荐
相关产品推荐

