繁体   English   中英

python 未创建 sql / 更新文件

[英]python not creating sql / updating file

好的,所以我已经搜索了 web 并尝试了几天但失败了。 我看到很多关于提交、目录等的答案......但没有一个工作

我运行 python 文件,据说我的训练营说它应该更新 sql 文件。 它没有创建文件,因为我的印象是它会,所以我继续手动创建并再次尝试一切。 我的 python 似乎对文件没有影响。

这是我正在使用的代码。

import sqlite3

conn = sqlite3.connect('emaildb.sqlite')
cur = conn.cursor()

cur.execute('DROP TABLE IF EXISTS Counts')

cur.execute('''
CREATE TABLE Counts (org TEXT, count INTEGER)''')

fh = open(r"c:\Users\hotsa\OneDrive\Desktop\code\SQ\mbox.txt")

for line in fh:
    if not line.startswith('From: '): continue
    pieces = line.split()
    email = pieces[1]
    dom = email.find('@')
    org = email[dom + 1: len(email)]
    cur.execute('SELECT count FROM Counts WHERE org = ? ', (org,))
    row = cur.fetchone()
    if row is None:
        cur.execute('''INSERT INTO Counts (org, count)
                VALUES (?, 1)''', (org,))
    else:
        cur.execute('UPDATE Counts SET count = count + 1 WHERE org = ?',
                    (org,))
    conn.commit()

# https://www.sqlite.org/lang_select.html
sqlstr = 'SELECT org, count FROM Counts ORDER BY count DESC LIMIT 10'

for row in cur.execute(sqlstr):
    print(str(row[0]), row[1])

cur.close()

目录图片目录图片

它似乎在 Visual Studio 代码终端中运行良好,但只是不更新 sql 文件。 我该怎么办?

谢谢大家,我很欣赏这些建议,卢克伍德沃德你是对的,将其更改为有效的直接文件路径,显然某处有一个无法识别的副本。 我将 conn = sqlite3.connect('emaildb.sqlite') 更改为 conn = sqlite3.connect(r"c:\Users\hotsa\OneDrive\Desktop\code\SQ\emaildb.sqlite")

我认为可能存在某种类型的安全问题,您的 SQL 服务器不允许通过外部代码对其进行更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM