不知道大家有沒有需要獲取百度網盤中的文件的目錄?
永恆君在百度網盤裏面存了大量文件,有時候需要做分享時候,希望可以把資源文件做一個目錄列表,這樣更方便使用。如下圖
百度雲客戶端本身並不提供這個功能,經過一番搜索和研究,發現網上已經有大神用python開發出來了小工具,只需要直接拿來用就好了。python源代碼如下:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
fromtkinterimport*
fromtkinter.filedialogimportaskopenfilename
fromtkinter.filedialogimportasksaveasfilename
fromtkinter.ttkimport*
importsqlite3
defselect_db_file():
db_file = askopenfilename(title="請選擇BaiduYunCacheFileV0.db文件",filetypes=[('db','*.db')])
db.set(db_file)
defselect_save_file():
save_file = asksaveasfilename(filetypes=[('文件','*.txt')])
f.set(save_file+".txt")
defwrite_file(file_dict,f,item,gap=""):
ifitem=="/":
f.write("━"+"/"+"\n")
foriinfile_dict["/"]:
f.write("┣"+"━"+ i +"\n")
i = item + i +"/"
ifiinfile_dict:
write_file(file_dict,f,i, gap="┣━")
else:
gap ="┃ "+ gap
foriinfile_dict[item]:
f.write(gap + i +"\n")
i = item + i +"/"
ifiinfile_dict:
write_file(file_dict,f,i,gap)
defcreate_baiduyun_filelist():
file_dict = {}
conn = sqlite3.connect(db.get())
cursor = conn.cursor()
cursor.execute("select * from cache_file")
whileTrue:
value = cursor.fetchone()
ifnotvalue:
break
path = value[2]
name = value[3]
size = value[4]
isdir = value[6]
ifpathnotinfile_dict:
file_dict[path] = []
file_dict[path].append(name)
else:
file_dict[path].append(name)
withopen(f.get(),"w",encoding='utf-8')asfp:
write_file(file_dict,fp,"/")
root = Tk()
root.title('百度雲文件列表生成工具')
db_select = Button(root, text=' 選擇DB文件 ',command=select_db_file)
db_select.grid(row=1,column=1,sticky=W,padx=(2,0),pady=(2,0))
db = StringVar()
db_path = Entry(root,width=80,textvariable = db)
db_path['state'] ='readonly'
db_path.grid(row=1,column=2,padx=3,pady=3,sticky=W+E)
save_path = Button(root, text='選擇保存地址',command=select_save_file)
save_path.grid(row=2,column=1,sticky=W,padx=(2,0),pady=(2,0))
f = StringVar()
file_path = Entry(root,width=80,textvariable = f)
file_path['state'] ='readonly'
file_path.grid(row=2, column=2,padx=3,pady=3,sticky=W+E)
create_btn = Button(root, text='生成文件列表',command=create_baiduyun_filelist)
create_btn.grid(row=3,column=1,columnspan=2,pady=(0,2))
root.columnconfigure(2, weight=1)
root.mainloop()
工具的原理:
百度網盤客戶端會將雲盤中的所有文件路徑緩存在本地磁盤上,並保存爲一個數據庫文件(BaiduYunCacheFileV0.db),只需要找到合適的工具讀取這個數據庫即可製作百度網盤中的文件目錄。
使用方法:
將上面的代碼保存爲.py文件,直接運行後會出現下面的界面,
選擇BaiduYunCacheFileV0.db的路徑,然後選擇要保存目錄的txt的位置,然後點擊“生成文件列表”即可。
這個工具着實很方便!!!
如果你嫌麻煩,可以直接下載永恆君製作好的.py文件使用。
另外,考慮到有些朋友的電腦上可能沒有安裝python,永恆君也把python文件編譯成了exe文件,直接雙擊即可運行。
py文件和exe文件都打包放在後臺了,感興趣的話公號內回覆"雲目錄"自取吧~~~
歡迎交流!
你可能還會想看: