不知道大家有没有需要获取百度网盘中的文件的目录?
永恒君在百度网盘里面存了大量文件,有时候需要做分享时候,希望可以把资源文件做一个目录列表,这样更方便使用。如下图
百度云客户端本身并不提供这个功能,经过一番搜索和研究,发现网上已经有大神用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文件都打包放在后台了,感兴趣的话公号内回复"云目录"自取吧~~~
欢迎交流!
你可能还会想看: