为什么 azure CLI 将 0 添加到我返回的列表中

Why is azure CLI adding 0 to my returned list

我正在使用 azure CLI 构建一些围绕 repo 创建等的自动化。我正在使用 python 作为各种 CLI 命令的一种包装器来捆绑自动化。我想写一个简单的检查来查看一个回购名称是否已被使用和存在。

repoName 来自系统输入,可以是用户想要命名其新存储库的任何名称。

到目前为止我有这个:

azRepoListCmd = "az repos list --query \"[?contains(name, \'" + repoName + "\')].[name]\" --organization https://myOrganizationHere.visualstudio.com/ --project myProject  -o tsv"

azRepoList = os.system(azRepoListCmd)
print(azRepoList)

上面的returns是什么:

test-project-2
0

这个“0”是什么,它从何而来?如果没有找到任何内容,预期结果将只是名称或空数组。

0 是 运行 os.system 的结果代码,不捕获输出。

https://docs.python.org/3/library/os.html#os.system

所以你的 azRepoList = ... 行实际上是输出 repo 名称,然后下一行输出结果代码。

你想要的是子进程。

import subprocess as sp
output = sp.getoutput("az repos list --query \"[?contains(name, 'PartsUnlimited')].[name]\" --project \"Parts Unlimited\" -o tsv")
print (output)

PartsUnlimited