【发布时间】:2021-08-30 16:53:10
【问题描述】:
我正在尝试使用子进程在 python 脚本中运行三个 shell 命令。我在其他线程上找到了一些代码。我没有收到任何错误,但文件没有上传到存储桶。如果我打开一个 cmd 窗口并输入所有三个文件,则该文件成功推送到存储桶。我正在使用 Python 3.6。
a = 'gcloud auth activate-service-account --key-file=C:\key\key.json'
b = 'cd C:\requests'
c = 'gsutil cp *.txt gs://request/upload/'
command = a; b; c
subprocess.run(command, stdout=subprocess.PIPE, shell=True)
【问题讨论】:
-
请考虑使用 Python 的 Cloud Storage 客户端库,而不是子进程。正如您所发现的,在子 shell 中调用命令具有挑战性。见:cloud.google.com/storage/docs/reference/libraries
-
删除命令
b。在命令c中使用完整路径名。
标签: subprocess gcloud gsutil