利用Sublime Text将不规则CSV导入数据库

P粉328763957

P粉328763957

2026-08-03

507人浏览

原创

csv文件打不开或乱码,须先设置语法绑定为csv并依次尝试utf-8 with bom、gbk、windows-1252编码;结构异常或超10mb时应转用csvkit、pandas等专业工具解析。

利用sublime text将不规则csv导入数据库

CSV 文件打不开或乱码?先确认语法绑定和编码

Sublime Text 默认把 .csv 当纯文本,右下角显示 Plain Text 就说明没启用 CSV 语法支持——高亮、分隔符识别、列感知全失效。中文变问号、字段粘连、换行消失,90% 是编码不匹配,不是文件损坏。

点击右下角语言标识 → 选 Open all with current extension as… → 选 CSV(ST4 内置,ST3 需确认插件已启用);乱码时点右下角当前编码(如 UTF-8)→ Reopen with Encoding → 依次试 UTF-8 with BOMGBKWindows-1252;确认正确后,再点同位置 → Save with Encoding 固化保存编码。

字段含未闭合引号、嵌套换行、逗号在引号内?别硬正则清洗

Sublime 的正则(如 ,(?=(?:[^"]*"[^"]*")*[^"]*$))只能跳过“成对双引号内的逗号”,但无法处理:"abc,"def(引号未闭合)、"multi\nline"(跨行字段)、field1;field2(混用分隔符)。这类结构异常不是编辑器能救的。

  • 超过 10MB 的 CSV 在 Sublime 里打开容易无响应
  • large_file_threshold 调高也治标不治本,本质是 Sublime 不解析 CSV 语义,只做字符匹配
  • 字段不规范时,LOAD DATA INFILEpandas.read_csv() 会直接报错,比如 ParserError: Expected 5 fields in line X, saw 7

想用 Sublime 写 SQL 导入脚本?必须绕开“字段顺序”陷阱

Sublime 只负责写文本,不校验数据与表结构是否一致。哪怕你手写对了 LOAD DATA INFILE,只要 CSV 第一行字段顺序和数据库表字段顺序不严格一致,或者某列类型不匹配(如字符串写进 INT 字段),MySQL 就会静默截断或报错 Incorrect integer value

Sublime Text Build Linux版
Sublime Text Build Linux版

Sublime Text Linux x86-64 deb 安装包。官方也提供 rpm、tar.xz 和软件源安装方式。

下载

常见踩坑点:

  • IGNORE 1 ROWS 开启了,但 CSV 实际没有表头,导致首行数据被跳过
  • ENCLOSED BY '"' 写了,但源文件字段根本没加引号,结果把逗号当分隔符误切
  • 路径用的是 Windows 风格 C:\data\file.csv,但 MySQL 运行在 Linux,secure_file_priv 限制只认绝对路径且必须可读
  • 字段含中文,但 MySQL 表字符集是 latin1,插入后变成 ???

真正可行的导入路径:Sublime 做预处理,专业工具做解析

Sublime 的合理角色是轻量清洗:删空行、统一换行符(\r\n\n)、替换非法控制字符、用列编辑补缺失字段占位符(如 NULL)、导出为标准 UTF-8 格式。之后必须交给能理解 CSV 语义的工具:

  • 结构稍乱?用 csvkit:命令 in2csv -f csv input.csv | csvsql --db sqlite:///db.db --insert --tables mytable
  • 要清洗+转换+类型推断?用 pandaspd.read_csv('file.csv', on_bad_lines='skip') + df.to_sql()
  • 纯命令行快速导入?MySQL 用 mysqlimport,PostgreSQL 用 COPY ... CSV HEADER

最易被忽略的一点:Sublime 里看着“对齐整齐”的 CSV,很可能只是视觉伪表格——字段实际长度不同、引号缺失、换行藏在引号内。这些在导入前肉眼几乎不可见,必须靠解析器报错才能暴露。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
li是什么元素
li是什么元素

li是HTML标记语言中的一个元素,用于创建列表。li代表列表项,它是ul或ol的子元素,li标签的作用是定义列表中的每个项目。本专题为大家li元素相关的各种文章、以及下载和课程。

2023.08.03

596

5

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2023.06.29

1257

3

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2023.08.14

2766

10

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

2023.08.31

1212

3

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.05

525

5

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1265

5

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

2023.10.16

1264

4

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

2023.10.16

2277

3

vb连接数据库的方法
vb连接数据库的方法

vb连接数据库的方法有使用ADO对象库、使用OLEDB数据提供程序、使用ODBC数据源等。详细介绍:1、使用ADO对象库方法,ADO是一种用于访问数据库的COM组件,可以通过ADO连接数据库并执行SQL语句。可以使用ADODB.Connection对象来建立与数据库的连接,然后使用ADODB.Recordset对象来执行查询和操作数据;2、使用OLEDB数据提供程序方法等等。

2023.10.19

1138

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程