V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
phyng
V2EX  ›  Python

Python3使用sqlite3连接已有数据库却变成新建数据库

  •  
  •   phyng · 2013-10-08 17:10:14 +08:00 · 4238 次点击
    这是一个创建于 4094 天前的主题,其中的信息可能已经有所发展或是发生改变。
    路径D:/dev/basechem.db已经存在正确的数据库,
    代码:
    import sqlite3
    conn = sqlite3.connect('D:/dev/basechem.db')
    c = conn.cursor()
    c.execute('''SELECT * FROM basechem LIMIT 0,10''')
    ……
    运行报错:
    Traceback (most recent call last):
    File "D:\dev\text.py", line 4, in <module>
    c.execute('''SELECT * FROM basechem LIMIT 0,10''')
    sqlite3.OperationalError: no such table: basechem

    打开D:/dev震惊的发现有两个一样文件名的basechem.db,其中一个0B,由此判断在sqlite3.connect时应该是创建了一个新的数据库,可是那个路径明明已经有一个同名数据库了啊。
    怀疑是Python3在Windows平台下的兼容性问题?
    5 条回复    1970-01-01 08:00:00 +08:00
    loading
        1
    loading  
       2013-10-08 17:25:22 +08:00 via iPhone   ❤️ 1
    两个同名文件是不可能的,文件系统不允许的,看下是不是你的为.db3

    我用py2.7连sqlite很正常
    phyng
        2
    phyng  
    OP
       2013-10-08 17:39:18 +08:00
    @loading 感谢回复。我又一遍检查发现确实是文件名有细微差别(basechem和bacechem),我现在面壁去。
    Golevka
        3
    Golevka  
       2013-10-08 19:50:47 +08:00
    啊哈哈哈哈哈哈哈哈哈哈
    davidli
        4
    davidli  
       2013-10-09 17:47:55 +08:00
    我想知道这个bace是怎么实现的。。
    phyng
        5
    phyng  
    OP
       2013-10-10 06:48:20 +08:00
    @davidli 呃,你是问我怎么出错的?生成数据库的时候拼错了打成了bacechem.db,然后连接数据库我又去连接正确的basechem.db。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5340 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 09:25 · PVG 17:25 · LAX 01:25 · JFK 04:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.