我在目录中有一些文件名,所有文件名都命名为'。\ 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()文件名,但我无法检索字符串中的数字。