我需要使用 Python 的 Subprocess 模块通过 Google Cloud SDK 运行 BigQuery CLI 命令。当我从命令行运行以下命令时,事情会按我的预期工作:
我曾尝试在以下场景中运行此 bq 命令但没有成功:
- 与 Windows cmd.exe 文件的完整路径一起使用
- 与 bq.cmd 文件的完整路径一起使用
- 在第一次运行 bq.cmd 文件的完整路径后,仅使用 bq 命令
这是我列出的第二个示例中的代码,因为我认为它最接近正确?
list_tables_bigquery = 'bq ls redacted:dataid'
try:
process = subprocess.Popen(["C:\\Users\\redacted.user\\AppData\\Local\\Google\Cloud SDK\\google-cloud-sdk\\bin\\bq.cmd",list_tables_bigquery],stdout=subprocess.PIPE, stderr = subprocess.STDOUT,shell=True,universal_newlines=True)
except Exception as error:
print(error)
powershell_communication = process.communicate()[0]
print(powershell_communication)
这是错误消息:
致命命令 'bq -q ls redacted:dataid' 未知
运行 'bq.py help' 以获得帮助
谢谢!