python - 是否可以使用python更改ms access表名称

标签 python ms-access pyodbc

我有几个 ms access 数据库,每个数据库都有一个名为 PlotStatus-name-3/13/12 的表。

我需要将每个表导入 .csv 表中。如果我手动将表的名称更改为 PlotStatus_name_3_13_12,则此代码有效。 有人知道如何使用 python 更改表名称吗?

#connect to access database
for filename in os.listdir(prog_rep_local):
if filename[-6:] == ".accdb":
    DBtable = os.path.join(prog_rep_local, filename)
    conn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + DBtable)
    cursor = conn.cursor()
    ct = cursor.tables
    for row in ct():
        rtn = row.table_name
        if rtn[:10] == "PlotStatus":

            #this does not work:
            #Oldpath = os.path.join(prog_rep_local, filename, rtn)
            #print Oldpath
            #fpr = Oldpath.replace('-', '_')#.replace("/","_")
            #print fpr
            #newname = os.rename(Oldpath, fpr)  this does not work
            #print newname
            #spqaccdb = "SELECT * FROM " + newname


            #this workds if I manually change the table names in advance
            sqlaccdb = "SELECT * FROM " + rtn
            print sqlaccdb

            cursor.execute(sqlaccdb)
            rows = cursor.fetchall()

最佳答案

一个更简单的解决方案是在表名周围添加括号,这样/s 就不会影响 SQL 命令解释器。

sqlaccdb = "SELECT * FROM [" + rtn + "]"

关于python - 是否可以使用python更改ms access表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15304779/

相关文章:

python - 使用 Python 解析 XML 并打印整个元素

python - 如何让python识别出没有输入

python - 将循环中的 DF 保存为 Python 中的全局 DF

ms-access - 防止 Autoexec 宏在压缩和修复后运行

使用本地数据库的 C# SQL 随机样本

python - 使用 PYODBC 连接到 SQL 服务器

python - 使用 pyodbc 将日期时间插入到 MS SQL 表中

python - 无法将 NULL 插入列 'Type'

python - 在 python 中使用 Eventlet 模块比线程模块有什么好处?

php - 如何用 php 创建一个新的 .MDB 文件?