我正在尝试编写一个 python 脚本,它使用 subprocess 模块将文件从一个 s3 存储桶复制到另一个。但是,为了提高性能,我尝试并行运行具有不同前缀的单独同步命令。
到目前为止我所尝试的脚本没有终止,并且我不确定子进程是否同时运行。
import subprocess
prefix = ['prefix1','prefix2','prefix3']
source_bucket = 's3://source'
dest_bucket = 's3://dest'
commands = []
for p in prefix:
command = 'aws s3 sync source_bucket' + p + ' dest_bucket'
commands.append(command)
procs = [subprocess.Popen(i, shell=True, stdout=subprocess.PIPE) for i in commands]
for p in procs:
p.wait()
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?任何帮助表示赞赏。