当前位置: 首页 > news >正文

Windows图片自动上传到百度网盘完整教程

目录

  1. 环境准备
  2. 安装Python
  3. 编写上传脚本
  4. 获取百度授权码
  5. 配置脚本
  6. 执行上传
  7. 常见问题与排错

环境准备

本教程适用于Windows系统,将本地图片自动上传到百度网盘,上传成功后自动删除本地文件。

功能特点:

  • 自动扫描指定目录下的所有图片文件
  • 上传到百度网盘指定文件夹
  • 上传成功后自动删除本地文件
  • 支持批量上传

安装Python

1. 下载Python

访问Python官网:https://www.python.org/downloads/

下载最新版本的Python(推荐3.8及以上版本)

2. 安装Python

  1. 双击下载的安装程序
  2. 重要:勾选 “Add Python to PATH”(添加到环境变量)
  3. 点击 “Install Now” 完成安装

3. 验证安装

打开命令提示符(cmd),输入以下命令:

python--version

如果显示Python版本号,说明安装成功。

4. 安装必要的库

在命令提示符中运行:

pipinstallbypy

编写上传脚本

创建一个Python文件,例如upload_to_baidu.py,内容如下:

# -*- coding: utf-8 -*-""" 使用bypy直接上传到百度网盘 """importosimportsubprocessfrompathlibimportPathdefcheck_bypy_auth():"""检查bypy是否已授权"""try:result=subprocess.run(['bypy','info'],capture_output=True,text=True,encoding='utf-8')output=result.stdout.lower()if'quota'inoutputor'bytes'inoutput:print("✓ bypy已授权")returnTrueelse:print("❌ bypy未授权")print("\n请先运行以下命令进行授权:")print(" bypy info")print("然后输入授权码: [你的授权码]")returnFalseexceptFileNotFoundError:print("❌ 未安装bypy")print("请运行: pip install bypy")returnFalseexceptExceptionase:print(f"检查授权失败:{e}")returnFalsedefget_image_files(source_path):"""获取所有图片文件"""source_dir=Path(source_path)ifnotsource_dir.exists():print(f"目录不存在:{source_path}")return[]# 支持的图片格式image_extensions={'.jpg','.jpeg','.png','.gif','.bmp','.tiff','.webp','.JPG','.JPEG','.PNG'}image_files=[]forextinimage_extensions:files=list(source_dir.rglob(f'*{ext}'))image_files.extend(files)returnimage_filesdefupload_files(image_files,target_folder,delete_after_upload=False):"""上传文件列表"""uploaded_count=0failed_count=0deleted_files=[]print(f"\n{'='*60}")print("开始上传...")ifdelete_after_upload:print("⚠ 上传成功后将删除本地文件")print(f"{'='*60}")foridx,img_fileinenumerate(image_files,1):try:# 计算相对路径relative_path=img_file.relative_to(Path(r"C:\Users\DCKJ\Downloads\图片助手(ImageAssistant)_批量图片下载器"))remote_path=f"{relative_path}".replace("\\","/")print(f"[{idx}/{len(image_files)}]{img_file.name}")# 创建远程目录dir_path=os.path.dirname(remote_path)ifdir_pathanddir_path!='.':subprocess.run(['bypy','mkdir',dir_path],capture_output=True,text=True)# 上传文件cmd=['bypy','upload',str(img_file),remote_path]result=subprocess.run(cmd,capture_output=True,text=True,encoding='utf-8')ifresult.returncode==0:print(f" ✓ 成功")uploaded_count+=1# 上传成功后删除本地文件ifdelete_after_upload:try:os.remove(img_file)deleted_files.append(str(img_file))print(f" ✗ 已删除本地文件")exceptExceptionasdelete_error:print(f" ⚠ 删除失败:{delete_error}")else:print(f" ✗ 失败")failed_count+=1exceptExceptionase:print(f" ✗ 错误:{e}")failed_count+=1returnuploaded_count,failed_count,deleted_filesdefmain():"""主程序"""# 配置路径(根据实际情况修改)SOURCE_PATH=r"C:\Users\DCKJ\Downloads\图片助手(ImageAssistant)_批量图片下载器"TARGET_FOLDER="ImageAssistant"print("\n"+"="*60)print("图片上传到百度网盘")print("="*60)print(f"源目录:{SOURCE_PATH}")print(f"目标: 我的应用数据/{TARGET_FOLDER}")print("="*60)# 检查授权ifnotcheck_bypy_auth():return# 获取图片文件print(f"\n扫描图片文件...")image_files=get_image_files(SOURCE_PATH)ifnotimage_files:print("❌ 没有找到图片文件")returnprint(f"找到{len(image_files)}个图片文件")# 显示前10个文件print("\n文件列表(前10个):")fori,imginenumerate(image_files[:10],1):size=img.stat().st_size/1024print(f"{i:2d}.{img.name:30s}{size:>6.1f}KB")iflen(image_files)>10:print(f" ... 还有{len(image_files)-10}个文件")# 直接开始上传print(f"\n目标位置:我的应用数据/{TARGET_FOLDER}")print("上传成功后自动删除本地文件")print("\n开始上传...")delete_after=True# 创建目标文件夹(在百度网盘中)print(f"\n创建百度网盘文件夹:{TARGET_FOLDER}")subprocess.run(['bypy','mkdir',TARGET_FOLDER],capture_output=True,text=True)# 上传uploaded,failed,deleted=upload_files(image_files,TARGET_FOLDER,delete_after)# 完成print(f"\n{'='*60}")print("上传完成!")print(f"{'='*60}")print(f"成功:{uploaded}")print(f"失败:{failed}")ifdelete_after:print(f"已删除本地文件:{len(deleted)}")print(f"\n文件位置:我的应用数据/{TARGET_FOLDER}")print(f"网页访问:https://pan.baidu.com/disk/home#/all?vmode=list&path=/我的应用数据/{TARGET_FOLDER}")if__name__=="__main__":try:main()exceptKeyboardInterrupt:print("\n\n已取消")exceptExceptionase:print(f"\n错误:{e}")importtraceback traceback.print_exc()finally:input("\n按回车键退出...")

获取百度授权码

1. 初次授权

在命令提示符中运行:

bypy info

示例:

https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpCsau1oS0MplgMKNBn&errmsg=Auth+Login+Sucess&errno=0&redirect_uri=oob&response_type=code&scope=basic+netdisk&ssnerror=0&stoken=syw5Wsu8DdCX2S0UIf1Xv3X1gZY7wFCY3MMjUt4SPUsxOA94dD25PBGfGz0Efv9RDZjL0lsvHimXz1vd2AAdWH%2FR%2FEFzO3eeeKOF3uObIDdR2mWk6diVvxEMoXvncyUr3oVsB7gvzJqeoqo%2FHAb0R7rQnGP859Tu1AFEZv9FEXc%2BdMloieWE9OWSd%2FEXPu7tCnvV3CsAuSlLuP30H7LYk7xgxd%2FYziVbgVv3HwjhTIe1By135x2ajRru2B%2B%2Bm7WLKS%2BmCezOcSjiPc6hBFr%2BFQ

2. 获取授权码

程序会显示一个授权链接,按照以下步骤操作:

  1. 复制显示的授权链接到浏览器打开
  2. 登录你的百度账号
  3. 点击"授权"按钮
  4. 复制页面显示的授权码

授权码示例:6e0058ddda4e63b2931bb164bd142370(这只是示例,你需要获取自己的)

3. 输入授权码

回到命令提示符,粘贴授权码并按回车

4. 验证授权

再次运行:

bypy info

如果显示网盘空间信息,说明授权成功!


配置脚本

修改脚本中的路径配置:

defmain():"""主程序"""# 修改为你的源目录SOURCE_PATH=r"C:\Users\DCKJ\Downloads\图片助手(ImageAssistant)_批量图片下载器"# 修改为你想要的目标文件夹名称TARGET_FOLDER="ImageAssistant"

注意事项:

  • 路径前面加r表示原始字符串,避免反斜杠转义问题
  • SOURCE_PATH是本地图片所在目录
  • TARGET_FOLDER是百度网盘中的文件夹名称(会创建在"我的应用数据"下)

执行上传

方法一:直接运行脚本

在命令提示符中进入脚本所在目录,运行:

python upload_to_baidu.py

方法二:双击运行(需要创建批处理文件)

创建一个.bat文件,例如upload.bat

@echo off chcp 65001 >nul cd /d "%~dp0" python upload_to_baidu.py pause

双击upload.bat即可运行。


常见问题与排错

1. SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes

错误信息:

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 192-193: truncated \UXXXXXXXX escape

原因:路径中的反斜杠\U被误认为是Unicode转义序列

解决方法:在路径字符串前加r前缀

# 错误写法SOURCE_PATH="C:\Users\DCKJ\Downloads\图片助手"# 正确写法SOURCE_PATH=r"C:\Users\DCKJ\Downloads\图片助手"

2. FileNotFoundError: 系统找不到指定的文件

错误信息:

FileNotFoundError: [WinError 2] 系统找不到指定的文件。: '微信公众号图片'

原因:尝试切换到不存在的本地目录

解决方法:删除os.chdir()调用,因为目标文件夹在百度网盘,不在本地

3. ❌ bypy未授权

错误信息:

❌ bypy未授权

解决方法:

# 重新授权bypy info# 输入授权码

4. ❌ 未安装bypy

错误信息:

❌ 未安装bypy

解决方法:

pipinstallbypy

5. PermissionError: 权限不足

错误信息:

PermissionError: [WinError 32] 另一个程序正在使用此文件

原因:文件正在被其他程序打开

解决方法:关闭正在使用该文件的程序后重试

6. 上传成功但网盘看不到文件

原因:bypy默认上传到"我的应用数据",不是根目录

解决方法:

  1. 在百度网盘网页版中找到"我的应用数据"文件夹
  2. 或者手动将文件夹移动到根目录

7. 授权码过期

错误信息:

授权失败或token过期

解决方法:

# 删除旧授权(Windows)del %USERPROFILE%\.bypy.json# 重新授权bypy info

8. 找不到图片文件

错误信息:

❌ 没有找到图片文件

检查项:

  1. 源目录路径是否正确
  2. 目录中是否确实有图片文件
  3. 图片扩展名是否在支持列表中:.jpg,.jpeg,.png,.gif,.bmp,.tiff,.webp

9. 上传速度慢

优化建议:

  1. 检查网络连接
  2. 避免在网络高峰期上传
  3. 分批上传大量文件

10. 如何查看详细错误信息

如果脚本运行出错,查看最后的错误堆栈信息:

Traceback(most recent call last):File"xxx.py",line XXX,in<module>main()File"xxx.py",line XXX,inmain()...

根据错误类型和行号定位问题。


进阶配置

1. 添加更多图片格式支持

修改image_extensions集合:

image_extensions={'.jpg','.jpeg','.png','.gif','.bmp','.tiff','.webp','.JPG','.JPEG','.PNG','.svg','.ico','.raw'# 添加更多格式}

2. 自定义删除行为

修改delete_after变量控制是否删除本地文件:

delete_after=True# 上传成功后删除# 或delete_after=False# 上传成功后保留

3. 添加日志记录

在脚本开头添加:

importlogging logging.basicConfig(filename='upload.log',level=logging.INFO,format='%(asctime)s - %(levelname)s: %(message)s')

然后在关键位置添加日志:

logging.info(f"上传文件:{img_file.name}")logging.info(f"删除文件:{img_file.name}")

总结

本教程完整介绍了:

  • ✅ Python环境搭建
  • ✅ 上传脚本编写
  • ✅ 百度网盘授权流程
  • ✅ 脚本配置方法
  • ✅ 执行上传命令
  • ✅ 常见问题排错

按照本教程操作,你就可以实现Windows本地图片自动上传到百度网盘,并在上传成功后自动清理本地文件。

如有问题,请参考【常见问题与排错】部分。


TIPS:
上传完成之后,文件在“我的应用数据”目录,需要手动挪到真正的文件夹里

http://www.cnnetsun.cn/news/1275937.html

相关文章:

  • 34岁大厂程序员被裁当场痛哭:月供2.6万!43岁被裁、赔偿金只够撑半年!
  • 【图像加密解密】3D物流图和改进型奇里科夫图图像加密解密【含Matlab源码 15162期】
  • 〘 6-2 〙软考高项 | 第13章:项目资源管理(下)
  • go-mcp基础
  • 情人节,爱你无数遍
  • 技术员视角:如何判断电商API接口的稳定性和可靠性
  • C 语言值传递陷阱:为什么链表初始化必须用 LinkList *L(二级指针)?
  • JeechBoot前端设置表格内自定义元素
  • 场景应用:全国首单车联网领域数据资产入表
  • 2026年存储市场核心数据与趋势分析
  • 打破小爱音箱音乐壁垒:XiaoMusic让你的智能音箱重获自由
  • 一文看懂 Bsin-PaaS Skills:把企业能力做成 AI 可调用的「技能」
  • 3步解锁显卡潜能:开源工具如何重构游戏体验
  • PyCINRAD:破解气象雷达数据密码的Python利器
  • 计算机毕业设计java基于Web的社区留守儿童管理系统 基于B/S架构的旅游景区综合信息管理平台设计 基于Spring Boot的景点资源与游客服务管理系统开发
  • autodl_M000_pytorch
  • 【中间件】Pulsar集群安装
  • python初应用
  • 【漏洞复现】CVE-2019-11043(PHP远程代码执行漏洞)信息安全论文_含漏洞复现完整过程_含Linux环境go语言编译环境安装
  • 算法题练习Day1:B2006 地球人口承载力估计
  • 2026年OpenClaw极简部署教程,两步拥有专属AI助理!
  • solidwork练习题29
  • 2026大客户销售培训机构推荐榜:聚焦工业品/ToB实战落地的优质服务商指南
  • 从数据库到大模型:开发者高效学习路径的思考
  • 柔性温度传感器--正六边型结构(2)
  • psd文件解析
  • java毕业设计——基于JSP+sqlserver的高校学生考勤管理系统设计与实现(毕业论文+程序源码)——考勤管理系统
  • java毕业设计——基于JSP+sqlserver的环境美容服务公司网站设计与实现(毕业论文+程序源码)——公司网站
  • 一文理解什么是贝叶斯优化的随机森林
  • 终极编程字体指南:Codeface位图字体画廊的完整使用教程