当反斜杠后跟数字时,在反斜杠上拆分一个字符串

时间:2017-12-23 21:28:25

标签: python string python-3.x string-operations

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

\ subreddits \600欧元\ 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识别反斜杠?或者我怎么能得到文件名的中间/最后一个元素?

我也试过编码()+ decode()文件名,但我无法检索字符串中的数字。

0 个答案:

没有答案