使用Python批量给百度网盘中的文件重命名

您所在的位置:网站首页 醉酒人殴打他人还手怎么办理 使用Python批量给百度网盘中的文件重命名

使用Python批量给百度网盘中的文件重命名

2024-06-17 05:35| 来源: 网络整理| 查看: 265

1、用户需要修改代码中以下变量的值:

(1)dir:dir为百度网盘的目录结构,例如:“%2F自学课%2FVue%2F资料”,可以在路径中path参数的值获取。如下图所示。 在这里插入图片描述 (2)BDTOKEN :在百度网盘的根目录处点击F12打开检查窗口,选择Network,再选择XHR,点击刷新,找到下图③所示的文件,点击后,在右侧header选项卡中出现的信息找到Param,就可以找到bdstoken的值。 在这里插入图片描述 (3)COOKIE :和上文的BDTOKEN 找的方式相同,在此只附一张图片: 在这里插入图片描述 (4)PATTERN :要被替换的内容,比如说:PATTERN =“考研”,意思是,把所有dir目录下的文件的文件名中“考研”两字会被REPLACE 的内容所替换,此变量支持使用正则表达式。 (5)REPLACE :替换为的内容,比如说:REPLACE =“我能行”,意思是,把所有dir目录下的文件的文件名中PATTERN 内容会被替换为 “我能行”。

2、代码: import requests import json import time import re import urllib.parse # 配置信息 # 操作的百度云目录 dir = '' # # 是否urlencode都可以 # dir = '/六级真题/2018年12月CET6/第二套' # BDTOKEN可在请求的params中找到 BDTOKEN = '' # COOKIE可在请求的headers中找到 COOKIE = '' # PATTERN和REPLACE分别为要替换的字符和替换成的字符 PATTERN = '考研' REPLACE = '我能行' headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Cookie': COOKIE, 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', } def list_name_desc(dir): """ 查询指定dir的文件,以列表方式返回文件信息 input - dir return - file_info_list """ dir = urllib.parse.unquote(dir) apilist_url = 'https://pan.baidu.com/api/list' params = { 'dir': dir, } response = requests.get(apilist_url, params=params, headers=headers) response.raise_for_status() if response.json()['errno'] == 0: file_list = response.json()['list'] file_info_list = [] for file in file_list: server_filename = file['server_filename'] isdir = file['isdir'] path = file['path'] if 'dir_empty' in file.keys(): dir_empty = file['dir_empty'] else: dir_empty = 0 each_file_info = { 'server_filename': server_filename, 'isdir': isdir, 'path': path, 'dir_empty': dir_empty } file_info_list.append(each_file_info) return file_info_list def baiduyun_rename(rename_list): ''' 按rename_list向接口https://pan.baidu.com/api/filemanager发送重命名请求 input - rename_list print - result rename_list格式[{"path":PATH,"newname":NEWNAME},{"path":PATH,"newname":NEWNAME},] 特别注意用rename_list构造post请求的data时,rename_list需要json.dumps转成字符串 ''' try_max = 5 try_count = 0 params = { 'opera': 'rename', 'async': '2', 'onnest': 'fail', 'channel': 'chunlei', 'web': '1', 'app_id': '250528', 'bdstoken': BDTOKEN, # 'logid':get_logid() , 'clienttype': '0', } if not rename_list == []: # ensure_ascii=False 加不加都可以,但key "filelist" 对应的 value 必须用json.dumps()转成字符串类型 data = {"filelist": json.dumps(rename_list, ensure_ascii=False)} url = 'https://pan.baidu.com/api/filemanager' response = requests.post(url, params=params, data=data, headers=headers) response.raise_for_status() errno = response.json()['errno'] if errno == 0: print('[info] : rename successfully!') elif errno == 12: print('[warning]: 批量处理错误,5s后重试') try_count += 1 if try_count


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3