问题描述
就我而言,我想将所有pdf文件上传到Google云端存储。
因此,我将带有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>"
有关{ } (curly brackets)
通配符,请参见this document中的bash
部分。您还可以看到this document关于gsutil
通配符。