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

如何将文件路径存入SQLite3数据库且避免sqlite3.InterfaceError?

解决sqlite3.InterfaceError:存储WindowsPath路径到SQLite数据库失败的问题

错误原因

你碰到的sqlite3.InterfaceError是因为SQLite不认识WindowsPath对象——它只支持字符串、数字这类基础数据类型,直接传路径对象会导致参数绑定失败。

修复方案

把WindowsPath对象转换成字符串就行,有两种简单方式:

  • 用str()直接转成Windows原生格式的路径字符串
  • 用as_posix()转成Unix风格的斜杠路径(适合跨平台读取的场景)

修改后的完整代码

import sqlite3
from pathlib import WindowsPath

# 创建数据库连接
conn = sqlite3.connect('file_path.db')
cursor = conn.cursor()

# 创建表
cursor.execute('''
    CREATE TABLE IF NOT EXISTS paths (
        id INTEGER PRIMARY KEY,
        file_path TEXT NOT NULL
    )
''')

# 读取输入路径并处理
input_path = input('enter file path: ')
path = WindowsPath(input_path.replace('"', ''))

# 插入数据时将路径转为字符串
# 方式1:转成Windows原生路径
cursor.execute('INSERT INTO paths (id, file_path) VALUES (1, ?)', (str(path),))

# 方式2(可选):转成跨平台的Unix风格路径
# cursor.execute('INSERT INTO paths (id, file_path) VALUES (1, ?)', (path.as_posix(),))

conn.commit()
conn.close()  # 记得关闭连接,避免资源泄漏

补充说明

  • 转换后的字符串和数据库表中file_path字段的TEXT类型完全匹配,不会再触发类型错误
  • 如果之后需要从数据库读取路径并重新变成WindowsPath对象,直接用WindowsPath(读取到的字符串)即可还原

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:22:05