收起左侧

一键压缩文件并生成目录的工具

1
回复
74
查看
[ 复制链接 ]

1

主题

1

回帖

0

牛值

江湖小虾

飞牛 OS 专属文件夹压缩工具:功能与部署指南

一、工具简介

昨天飞牛更新了网盘自动加密并同步文件的功能,极大的方便了文件多重备份的需求。但是如果一个文件夹里面有很多个子文件夹或者文件,在上传到网盘后,网盘往往会对这些文件的转存分享作出限制,往往还得开会员才能分享转存。为此开发的 folder_converter_flyos_custom.py,是一款专为飞牛 OS 设计的文件夹处理工具,支持 “一键压缩原文件 + 生成结构一致的 TXT 索引文件夹”,适配飞牛 OS 的文件系统与权限机制,尤其适合含有大量子文件夹的文件批量处理。

二、核心功能

1. 文件夹结构无损保留

  • 遍历源文件夹所有层级(包括子目录),在目标路径下重建完全一致的目录结构,与原文件夹层级 1:1 对应
  • 自动跳过飞牛 OS 中的符号链接文件,避免重复计算或路径异常导致的结构错乱
  • 支持含特殊字符的文件夹名称(如中文、空格、下划线),兼容飞牛 OS 编码格式,确保结构完整性

2. 空 TXT 文件批量生成(便于查找)

  • 对源文件夹中的每个文件,生成对应空 TXT 文件,命名规则为:文件名@扩展名.txt
    • 示例:原文件 report.pdf → 生成 report@pdf.txt;无扩展名文件 readme → 生成 readme@no_ext.txt
  • TXT 文件与源文件目录结构完全对齐,上传飞牛网盘后可快速通过 TXT 文件名定位目标文件,无需打开压缩包
  • 空 TXT 文件体积可忽略,不占用额外网盘空间,解决 “多文件转存分享限制” 问题
    wechat_2025-09-05_203644_737.png

3. 100GB 级分卷压缩(一键处理大文件)

  • 自动判断分卷:计算源文件夹总大小,≤100GB 生成单压缩包,>100GB 自动拆分,无需手动分割
  • 灵活命名规则
    • 单压缩包:源文件夹名_时间戳.zip(示例:XX项目_2025-09-05_17-45-30.zip
    • 分卷压缩:源文件夹名_part1_时间戳.zip源文件夹名_part2_时间戳.zip...
  • 超大文件兼容:单个文件>100GB 时,自动为该文件创建独立分卷,避免压缩损坏或网盘上传失败
  • 压缩格式优化:采用 ZIP_DEFLATED 压缩算法,平衡压缩率与速度,适配飞牛网盘上传速度与存储需求

4. 详细日志与错误处理

  • 生成带时间戳的完整日志(命名:文件夹转换日志_时间戳.log),记录:
    • 目录创建、文件生成、压缩进度等关键操作,便于追溯处理过程
    • 权限不足、路径不存在、磁盘空间不足等错误信息,快速定位问题
  • 日志文件自动保存在目标文件夹的子目录中,随 TXT 文件夹一同备份,便于后续排查
  • 终端实时输出进度(如「压缩中添加文件」「分卷完成」),直观掌握处理状态,避免等待焦虑

三、关键参数说明

参数类型 输入时机 说明 示例(飞牛 OS 路径)
源文件夹路径 第一步「设置源文件夹」 需处理的原始文件夹路径(含子目录和文件),必须为飞牛 OS 可访问的目录,如 XX 项目文件夹 /home/admin/Documents/XX项目
目标文件夹路径 第二步「设置自定义输出」 存放生成的 TXT 文件夹和压缩包的根路径,压缩包直接存于此,TXT 文件夹以源文件夹名命名 /home/admin/Desktop/XX项目备份

配置常量(可选修改代码)

位于代码顶部,适合根据需求调整,无需复杂编程基础:

python

运行

SPLIT_SIZE = 100 * 1024 * 1024 * 1024  # 分卷阈值(默认100GB,可改为50GB、200GB等)
SPLIT_PART_PREFIX = "part"  # 分卷前缀(默认"part",可改为"卷"等中文标识)

四、飞牛 OS 部署与运行步骤(本地直接运行,无依赖)

1. 环境准备

飞牛 OS 默认预装 Python 3.6+,工具基于 Python 标准库开发,无需额外安装依赖,验证 Python 环境是否正常:

bash

# 打开飞牛OS终端,执行以下命令,显示Python 3.x.x版本即正常
python3 --version

2. 工具获取与存放

folder_converter_flyos_custom.py文件保存到飞牛 OS 任意目录(建议放在常用工具文件夹,如 /home/admin/飞牛工具),获取方式:upload 附件:folder_converter_flyos_custom .rar

3. 具体运行步骤

  1. 打开终端并进入工具目录
    打开飞牛 OS 终端,通过 cd命令进入工具所在文件夹(示例路径为 /vol1/1000/Python,需替换为实际路径):
    1122.png

    bash

     cd /vol1/1000/Python
    
  2. 赋予文件执行权限(首次运行需执行,后续无需重复操作):
    确保工具文件有可执行权限,避免因权限问题无法启动:
    bash

    chmod +x folder_converter_flyos_custom.py
    
  3. 启动工具(根据文件大小选择命令):

    • 若处理普通文件(如 XX 项目文档,体积<50GB):
      bash

      python3 folder_converter_flyos_custom.py
      
    • 若处理大文件 / 系统目录文件(如 XX 项目素材库,体积>100GB):
      建议加 sudo提权,避免因文件权限不足导致处理中断:
      bash

      sudo python3 folder_converter_flyos_custom.py
      
  4. 按提示输入参数

    • 第一步:终端提示 “请输入 / 拖放源文件夹路径”,将需要处理的文件夹(如 XX 项目文件夹)拖到终端,删除自动生成的引号后回车,示例输入:
      plaintext

      /home/admin/Documents/XX项目
      
    • 第二步:终端提示 “请输入 / 拖放自定义目标路径”,将存放结果的文件夹(如 XX 项目备份文件夹)拖到终端,删除引号后回车,示例输入:
      plaintext

      /home/admin/Desktop/XX项目备份
      
  5. 等待执行与查看结果

    • 工具运行过程中,终端会实时显示 “目录创建”“文件生成”“压缩进度” 等信息,分卷压缩时会提示每个分卷的大小与路径
    • 执行完成后,终端会显示处理统计(如 “创建目录 10 个,处理文件 50 个”),按「回车键」关闭终端
    • 结果位置:在目标文件夹(如 /home/admin/Desktop/XX项目备份)中,可看到:
      • TXT 文件夹:以源文件夹名命名(如 XX项目),内部结构与原文件夹一致,文件均为 文件名@扩展名.txt格式
      • 压缩包:直接存于目标文件夹根目录,按命名规则生成(如 XX项目_2025-09-05_17-45-30.zip或分卷文件)
      • 日志文件:存于 TXT 文件夹内,命名为 文件夹转换日志_时间戳.log

五、常见问题与注意事项

1. 权限相关问题

  • 问题现象:终端提示 “PermissionError:[Errno 13] Permission denied”(权限不足)
  • 解决方法
    1. 若本地运行未加 sudo,重新执行命令时添加 sudo(如 sudo python3 folder_converter_flyos_custom.py

    2. 若文件夹本身权限不足,执行以下命令开放权限(替换路径为源 / 目标文件夹路径):
      bash

      chmod -R 755 /home/admin/Documents/XX项目
      

2. 磁盘空间不足问题

  • 问题现象:终端提示 “OSError:[Errno 28] No space left on device”(磁盘空间不足)
  • 解决方法
    1. 查看飞牛 OS 磁盘剩余空间:执行 df -h命令,找到目标文件夹所在分区(如 /home分区)
    2. 清理目标分区无用文件,确保剩余空间≥源文件夹总大小的 1.2 倍(分卷压缩需临时缓存)
    3. 若空间仍不足,更换目标路径到剩余空间充足的分区(如外接硬盘)

3. 分卷压缩包解压方法(飞牛 OS 中)

将分卷压缩包上传飞牛网盘后,下载到本地解压时,需将所有分卷放在同一目录,避免解压失败:

bash

# 方法1:使用系统自带unzip命令(推荐,自动识别分卷)
unzip XX项目_part1_2025-09-05_17-45-30.zip
# 方法2:使用7z命令(需先安装,支持更多压缩格式)
sudo apt install p7zip-full  # 安装7z工具
7z x XX项目_part1_2025-09-05_17-45-30.zip

4. 日志查看与问题排查

若工具运行异常,可通过日志文件定位问题:

  • 日志路径:目标文件夹/源文件夹名/文件夹转换日志_时间戳.log(示例:/home/admin/Desktop/XX项目备份/XX项目/文件夹转换日志_2025-09-05_17-45-30.log

  • 查看命令:在终端执行以下命令(替换为实际日志路径):
    bash

    cat /home/admin/Desktop/XX项目备份/XX项目/文件夹转换日志_2025-09-05_17-45-30.log
    
  • 重点关注:日志中带 “错误”“失败” 的条目,可快速定位权限、路径、空间等问题

六、适用场景

  1. 飞牛备份到网盘:将多文件 / 子文件夹的 XX 项目,压缩为 1 个或多个压缩包,搭配结构一致的 TXT 文件夹,避免网盘转存分享限制,无需开会员即可高效分享
  2. 大文件批量处理:处理 XX 项目中的设计素材、视频文件等大体积内容,自动分卷适配网盘上传大小限制,减少上传失败概率
  3. 文件结构索引:生成的 TXT 文件夹可单独上传网盘,作为文件结构索引,通过 TXT 文件名快速定位目标文件,无需下载完整压缩包
  4. 跨设备迁移:在网盘进行分享转存时,压缩包 + TXT 文件夹的组合可减少传输文件数量,提升迁移效率,避免文件丢失

如需调整分卷大小、TXT 命名规则等,可直接修改代码顶部的配置常量,工具已预留灵活扩展接口,无需复杂开发即可适配更多飞牛 OS 使用场景。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

152

回帖

0

牛值

初出茅庐

强大。。。。。。。。。。。。。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则