我在一个目录中有一些文件名,都命名为'.\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 识别反斜杠?或者我怎么能得到文件名的中间/最后一个元素?
我也尝试对文件名进行编码()+解码(),但我无法检索字符串中的数字。