在我的案例中,我想将所有pdf文件上传到谷歌云存储。
所以我使用带有pytho子流程的google-sdk进行练习,而不是"google.cloud.storage API";。
但下面有一个错误:
代码:
from subprocess import Popen
def subprocess_cmd(command):
print(f'$>: {command}')
process = Popen(command,
stdout=subprocess.PIPE,
executable='/bin/bash',
shell=True)
proc_stdout = process.communicate()[0].strip()
print(proc_stdout.decode("utf-8"))
执行功能:
command = "gsutil -m cp -r ./source/*(.pdf|.PDF) gs://<bucket_name>"
subprocess_cmd(command)
错误:
/bin/bash: -c: line 0: syntax error near unexpected token `('
/bin/bash: -c: line 0: `gsutil -m cp -r ./source/*(.pdf|.PDF) gs://<bucket_name>'
您应该使用以下行:
command = "gsutil -m cp -r ./source/{*.pdf,*.PDF} gs://<bucket_name>"
请参阅本文档中有关bash
通配符的{ } (curly brackets)
部分。您还可以看到有关gsutil
通配符的文档。