首页 > 解决方案 > 仅在 PC 启动 sqlite3.OperationalError 时出现 Python 错误:无法打开数据库文件

问题描述

我制作了一个 python 脚本,它应该在我启动我的 PC 时启动,为了做到这一点,我创建了一个像这样的简单 .bat 文件。但是现在我遇到了一个问题,因为为什么 Windows 在启动时无法打开数据库连接。我试过这样:

conn = sqlite3.connect('DB\Todos.db')

当我正常执行批处理文件时,一切正常,但是当 Windows 在启动时启动它时出现此错误:

Traceback (most recent call last):

File "Path to my file", line 41, in <module>
conn = sqlite3.connect('DB\Todos.db')
sqlite3.OperationalError: unable to open database file    

当然,“我的文件路径”是正常路径。谢谢你的帮助

标签: pythonpython-3.xbatch-filecmd

解决方案


当然这说明系统找不到指定的文件,这是他们无法打开数据库文件的原因。如果您的程序在 DB 文件夹中,您可以直接使用 conn = sqlite3.connect('Todos.db')。而且,如果出于个人目的,最推荐的是使用整个路径,例如conn = sqlite3.connect('X:\MyDB\SQLite\Todos.db'). 输出错误sqlite3.OperationalError: unable to open database file 通常以以下错误开始:

  • 系统找不到文件。
  • 系统无法打开文件。
  • 系统没有文件的权限(或者你没有)。
  • 系统没有读取权限。

如果无法打开找到文件,请将您的脚本或目录移动到文件所在的位置。它节省了代码,比插入完整路径要好得多,因为如果您向某人制作程序,则很难说出程序在哪里,他/她可能会更改代码等。但是如果一切都是在同一个文件夹上,很容易。

如果无法打开文件,可能是已损坏;该程序无法读取此文件的扩展名,或者不是他识别的程序。或者你不支付程序。

如果没有该文件的权限,您需要以管理员身份启动程序,如果它不起作用,请在互联网上搜索如何授予 .(yourext) 权限。

至少,文件的 READ 权限是正确的。有些文件有一个属性,“-r”,只读文件属性,使用具有管理员权限的提示(CMD)将其删除,位于文件的文件夹中并键入attrib -r -s -h yourfile.ext,它会删除只读,系统和隐藏文件属性。

如果一切都不起作用,则文件已损坏。对不起。


推荐阅读