【Python&网络通信】基于Bypy调用百度网盘api实现自动上传和下载网盘文件

        网盘对于大家的生活工作可以说是息息相关,但是如果每天都重复去上传下载文件就会很浪费时间,所以有没有什么办法可以解放双手?那就是网盘接口,本文通过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 (帮助面板,显示所有功能)
posted @ 2024-07-03 17:08  RS迷途小书童  阅读(7)  评论(0编辑  收藏  举报