使用python批量上传
代码展示:
# -*- coding: utf-8 -*-
import os
import glob
import requests
import time
from rich.progress import Progress
url = 'http://u.onelap.cn/upload/fit'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.1 Safari/537.36',
'Cookie': '这里填写Cookie'
}
# 指定目录路径
directory = r'Fit文件夹完整路径'
# 获取目录下所有的 .fit 文件路径
fit_files = glob.glob(os.path.join(directory, '*.fit'))
# 创建进度条
with Progress() as progress:
task = progress.add_task("[cyan]上传中...", total=len(fit_files))
for fit_file in fit_files:
with open(fit_file, 'rb') as file:
files = {
'jilu': (os.path.basename(fit_file), file),
'filename': (None, os.path.basename(fit_file)),
'_token': (None, '这里填写tokin')
}
response = requests.post(url, headers=headers, files=files)
# 更新进度条
progress.update(task, advance=1, description=f"上传中 {os.path.basename(fit_file)}")
# 输出上传结果
print(f"已上传 {os.path.basename(fit_file)}: {response.text}")
# 等待 1 秒再继续下一个文件的上传
time.sleep(1)
# 完成上传后显示完成信息
print("上传完成!")
# 循环处理用户的选择
while True:
choice = input("是否要重试上传失败的文件 (Y),删除已成功上传的文件 (S),或取消操作 (N)? ").strip().upper()
if choice == 'Y':
# 重试上传失败的文件
failed_files = [fit_file for fit_file in fit_files if not os.path.exists(fit_file)] # 检查文件是否上传失败
print(f"重新上传 {len(failed_files)} 个文件...")
for fit_file in failed_files:
with open(fit_file, 'rb') as file:
files = {
'jilu': (os.path.basename(fit_file), file),
'filename': (None, os.path.basename(fit_file)),
'_token': (None, 'KUnLFMGOWZluGnfZ3JAd9i7ifjRqjzAyIG32A8PN')
}
response = requests.post(url, headers=headers, files=files)
# 输出上传结果
print(f"已上传 {os.path.basename(fit_file)}: {response.text}")
# 等待 1 秒再继续下一个文件的上传
time.sleep(1)
elif choice == 'S':
# 删除已成功上传的文件
successful_files = [fit_file for fit_file in fit_files if os.path.exists(fit_file)] # 检查文件是否已上传成功
for fit_file in successful_files:
os.remove(fit_file)
print(f"已删除 {os.path.basename(fit_file)}")
print("已成功上传的文件已删除.")
elif choice == 'N':
# 取消操作
print("操作已取消.")
break # 退出循环
else:
# 处理无效输入
print("无效的选择,请输入 Y、S 或 N.")