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



我正在使用azure CLI来围绕回购创建等构建一些自动化。我正在使用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)

以上返回的是:

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

相关内容

  • 没有找到相关文章

最新更新