Python 从拆分命令到另一个函数的管道输出

Python 从拆分命令到另一个函数的管道输出,python,bash,split,pipe,Python,Bash,Split,Pipe,我目前正在使用一个脚本/命令行,该脚本/命令行允许我执行以下操作: 存档并压缩所需文件夹(tar) 将上一个命令/函数的输出拆分为100MB的块(拆分) 加密每个数据块(gpg) 我已经成功地编写了一个python脚本,与Linux terminal/bash交互并逐个执行所需的命令,但是我正在处理相当大的文件夹大小(100GB+),这意味着按顺序执行所有这些操作至少需要100GB的存档、100GB的拆分和100GB的加密 我曾考虑使用RAM磁盘在内存中执行所需的操作,但对于文件夹大小来说,这似

我目前正在使用一个脚本/命令行,该脚本/命令行允许我执行以下操作:

  • 存档并压缩所需文件夹(tar)
  • 将上一个命令/函数的输出拆分为100MB的块(拆分)
  • 加密每个数据块(gpg)
  • 我已经成功地编写了一个python脚本,与Linux terminal/bash交互并逐个执行所需的命令,但是我正在处理相当大的文件夹大小(100GB+),这意味着按顺序执行所有这些操作至少需要100GB的存档、100GB的拆分和100GB的加密

    我曾考虑使用RAM磁盘在内存中执行所需的操作,但对于文件夹大小来说,这似乎是一条死胡同,如果我用Python编写脚本,我不确定如何在归档文件中获得正确的块

    我在Linux中使用pipe成功地将归档和剥离功能结合起来,这既节省了时间,也节省了需要写入的数据,但是我一直在想如何将剥离命令(成百上千个文件)的输出管道化到gpg命令,并对它们分别进行加密

    目前的进程如下:
    tar{command with options}| split{command with options}
    ->会导致分割存档块。 python脚本,该脚本对以前的拆分命令tar.gz_0001到tar.gz_0001.gpg等的每个文件进行加密

    理想情况下,我可以做类似的事情:

    tar {command with options} | split {command with options} | gpg {command with options}
    
    将以以下格式生成文件:

    filename.tar.gz_0001.gpg
    
    关于如何做到这一点有什么建议吗

    关键是要节省时间,不要在中间步骤中将数据写入硬盘

    或者, 如果有人能指出我如何在python中完成大型文件夹的归档和拆分,而不必编写文档,这样数据就可以被加密,那也行


    提前感谢。

    是否可以创建
    tar.gz
    ,将该文件保存到磁盘,然后加密每个100MB块?那么你可以避免将100GB存储在RAM中。这就是我目前拥有的,除非我找到一个更优雅的解决方案,否则我将继续这样做。我将处理TB级的数据,这意味着我必须归档/拆分额外的数据,然后对相同的数据进行加密——有效地将写入的数据(包括源数据)翻一番,这意味着3倍的数据量。我已经通过管道tar和拆分(数据量的4倍)将其从三份减少到了三份。