【问题标题】:How to make path into an SQLite database directory dynamic for multiple directories?如何使多个目录的 SQLite 数据库目录动态路径?
【发布时间】:2019-11-19 23:38:31
【问题描述】:

大家好,感谢您的宝贵时间。抱歉,我不确定我是否正确解释了这一点,但请随时提出任何进一步的问题以进一步了解我的问题。

我有一个 Python 脚本可以像这样连接到 SQLite db 目录:

conn = sqlite3.connect('C:\Users\gareth\Desktop\pastRuns\test_cpd49-1.70.101.iso\test_cpd49-1.70.101.iso.db');

在目录 /pastRuns 中,我有多个与 test_cpd49-1.70.101.iso 名称相似的目录,其中也有相应的 .db 文件。示例如下:

  /pastRuns 
      /test_cpd49-1.70.101.iso
         -->test_cpd49-1.70.101.iso.db
      /test_cpd49-1.70.119.iso
         -->test_cpd49-1.70.119.iso.db
      /test_cpd49-1.70.127.iso
         -->test_cpd49-1.70.127.iso.db
      /test_cpd49-1.71.104.iso
         -->test_cpd49-1.71.104.iso.db
      /test_cpd49-1.72.166.iso
         -->test_cpd49-1.72.166.iso.db

是否可以使每个.db 文件的路径动态化,这样我就不必有多个入口点?

【问题讨论】:

  • 尝试 os.walk 并使用 -os.path.join 加入路径
  • 你能举一个例子来说明你想象它是如何工作的吗?也许描述一个用例?目前还不清楚您要在这个级别上实现什么目标。
  • .iso 文件夹中同时存在 .db 和 .json 文件。更新 .json 文件时,如果 .json 文件中存在新数据,我必须将新数据与 .db 文件中的内容进行比较并更新 .db 文件。我已经完成了该部分的大部分逻辑。我只是想尝试自动执行此过程并遍历所有 .iso 文件并执行相同的任务。但是如果可能的话,我正在尝试找到解决静态数据库连接地址的方法。我希望这能让您更好地了解我在说什么。

标签: python python-2.7 sqlite cd


【解决方案1】:

不确定这是否是您的意思,但您尝试这样的方法来获取 db 文件的路径,然后连接到它们

import os
path = r'C:\Users\gareth\Desktop\pastRuns'

for f in os.walk(path):
    if f[2] and f[2][0].endswith('.db'):
        print(os.path.join(f[0],f[2][0]))
        conn = sqlite3.connect(os.path.join(f[0],f[2][0]))
        # program logic goes here
        conn.close()

【讨论】:

  • 这会连接到所有数据库,然后丢弃连接对象而不关闭它们。这不太可能是 OP 想要的。
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-12
  • 2016-09-14
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多