网盘对于大家的生活工作可以说是息息相关,但是如果每天都重复去上传下载文件就会很浪费时间,所以有没有什么办法可以解放双手?那就是网盘接口,本文通过Bypy库实现百度网盘的自动上传和下载文件。
原创作者:RS迷途小书童
博客地址:https://blog.csdn.net/m0_56729804?type=blog
百度网盘官网有另一种方法,但是目前只针对企业可以申请。这里使用的bypy库可以个人授权,但是弊端就是文件只能存放在网盘app/bypy目录下。
1 获取授权
这里的获取方法很简单,安装好bypy库后运行下面的代码,命令行中就会弹出网页链接,点击链接复制授权码,粘贴至命令行中回车即可。(我用的Pycharm)
# -*- coding: utf-8 -*-
"""
@Time : 2023/11/3 14:37
@Auth : RS迷途小书童
@File :Baidu Net disk Function.py
@IDE :PyCharm
@Purpose:百度网盘上传下载接口
@Web:博客地址:https://blog.csdn.net/m0_56729804
"""
from bypy import ByPy
bp = ByPy()
print(bp.list())
2 上传文件
# -*- coding: utf-8 -*-
"""
@Time : 2023/11/3 14:37
@Auth : RS迷途小书童
@File :Baidu Net disk Function.py
@IDE :PyCharm
@Purpose:百度网盘上传下载接口
@Web:博客地址:https://blog.csdn.net/m0_56729804
"""
def upload_file(src_file="C:/1/1.png", target_file="/1/2.png"):
bp = ByPy()
bp.upload(
localpath=src_file,
remotepath=target_file
) # 第一个参数是需要上传的文件绝对路径,第二个参数是希望的名称(路径)
def upload_path(src_path=r"C:/1", target_path="文件夹1"):
bp = ByPy()
bp.syncup(
src_path,
target_path
) # 第一个参数是需要上传的文件夹绝对路径,第二个参数是目标的文件夹目录
3 下载文件
# -*- coding: utf-8 -*-
"""
@Time : 2023/11/3 14:37
@Auth : RS迷途小书童
@File :Baidu Net disk Function.py
@IDE :PyCharm
@Purpose:百度网盘上传下载接口
@Web:博客地址:https://blog.csdn.net/m0_56729804
"""
def download_file(src_file=r"/1/1.png", target_file=r"Z:\2.png"):
bp = ByPy()
bp.download(
src_file,
target_file
) # 第一个参数是需要下载的网盘文件路径,第二个参数是目标的文件目录/名称
def download_path(src_path=r"/test/", target_path=r"Z:/test/"):
bp = ByPy()
bp.syncdown(
src_path,
target_path
) # 第一个参数是需要下载的网盘文件夹路径,第二个参数是目标的文件夹目录/名称
4 问题解答
1.上传/下载文件时报错:
看下文件是否成功上传/下载,成功了就别管他的报错。有时候是因为编码不一致导致的。
2.授权码怎么修改
使用cmd进入bypy的Python环境后运行下面的指令
- bypy list (展示app中的文件夹,提示输入token)
- bypy -c(清空token)
- bypy --help (帮助面板,显示所有功能)