1

我在一个目录中有一些文件名,都命名为'.\subreddits\somename\somename.db'。
其中一个文件在反斜杠后面有一个数字:

.\subreddits\600euro\600euro.db

我想
* 遍历目录中的所有文件,
* 获取每个文件名的中间元素/或最后一个元素
* 打开文件,即打开到它的 sql 连接。

我无法用反斜杠后的数字拆分该文件的文件名:

for db in os.listdir(dir_with_dbs):
    print(db) # .\subreddits\600euro\600euro.db -> .\subredditsƀeuroƀeuro.db
    # get middle name of db file: .\subreddits\xy\xy.db -> xy
    # THIS FAILS on the backslash-number combination:
    out_str = db.split("\\")[2] # list index out of range

    # open file that will contain results: query_res_xy
    with open("query_res_" + out_str, 'w') as out:

        #execute a query on the db file
        conn = sqlite3.connect(os.path.join(dir_with_dbs, db))          
        c = conn.cursor()
        c.execute(query)

        # write results of query to file with same middle/last name
        for row in c.fetchall():
            out.write(row + '\n')

这个问题How to manage a path with numbers after backslashes? 描述了一个类似的问题,但 OP 不想更改/拆分字符串。
我无法重命名文件,而且我事先不知道目录中有哪些文件。

即使数字紧随其后,如何让 python 识别反斜杠?或者我怎么能得到文件名的中间/最后一个元素?

我也尝试对文件名进行编码()+解码(),但我无法检索字符串中的数字。

4

0 回答 0