我想从Python运行一个管道命令行linux/bash命令,它首先记录文件,然后拆分tar文件.命令在bash中看起来像这样:
> tar -cvf - path_to_archive/* | split -b 20m -d -a 5 - "archive.tar.split"
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用子进程执行它,通过设置shell = True,并将整个命令作为字符串提交,如下所示:
import subprocess
subprocess.call("tar -cvf - path_to_archive/* | split -b 20m -d -a 5 - 'archive.tar.split'", shell=True)
Run Code Online (Sandbox Code Playgroud)
...但出于安全原因,我想找到一种方法来跳过"shell = True"部分(它采用字符串列表而不是完整的命令行字符串,并且无法正确处理管道char).在Python中有没有解决方案?即,是否有可能以某种方式设置链接管道,或其他一些解决方案?