为什么 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
我正在使用 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