gpt4 book ai didi

Python——使用 MySQLDB 从 For 循环插入记录

转载 作者:行者123 更新时间:2023-11-30 23:34:31 25 4
gpt4 key购买 nike

我已经完成了教程,但我距离一个成熟的 python 黑客还很远。

我正在尝试使用 MySQLdb 执行以下操作:

  1. 循环遍历目录中的文件列表
  2. 根据函数参数为这些文件生成新的文件名
  3. 插入具有新文件名的数据库记录
  4. 使用新文件名将文件移动到新目录。

我的项目 1,2 和 4 可以正常工作,但无法使数据库插入正常工作。没有错误,但没有任何内容插入到表中。我可以通过命令提示符登录并访问数据库,并且可以直接向表中插入一条记录。

我使用的是 python 2.75、mySQL 5.6.13、windows 7 64 位和使用 easy_install 安装的 MySQL_python-1.2.4-py2.7-win32。

def moveFile(rPath, dPath, dbID):
import fnmatch
import os
import MySQLdb as mysql
import sys
conn = mysql.connect(host='localhost', user='*******', passwd='*******', db='*******')
pattern = '*.pdf'
inc = 0
for root, dirs, files in os.walk(rootPath):
for filename in fnmatch.filter(files, pattern):
dire = root.find(rootPath) + len(rootPath)
dest = destPath + root[dire:]
fname = dbID + "_" + str(inc) + ".pdf"
# print fname
# print os.path.join(root, filename), os.path.join(dest, fname)
# os.renames(os.path.join(root, filename), os.path.join(dest, fname))
x = conn.cursor()
x.execute("INSERT INTO documents(documentname) VALUES (fname)")
inc += 1

return 'Files Count: ', inc

我确信我需要在代码中的某个地方提交,但我的尝试没有产生错误,但也没有结果。

感谢您阅读我的问题,我会立即尝试所有建议。

最佳答案

替换 x.execute(...) 行如下:

    x.execute("INSERT INTO documents(documentname) VALUES (%s)", (fname,))

并在最后提交。

conn.commit()

关于Python——使用 MySQLDB 从 For 循环插入记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18044264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com