我正在使用azure构建一些围绕回购创建的自动化,我使用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“是什么?它是从哪里来的?预期的结果只是名称或空数组,如果它没有找到任何东西。
发布于 2021-06-29 02:07:41
0是运行os.system的结果代码,它不捕获输出。
https://docs.python.org/3/library/os.html#os.system
因此,您的azRepoList = ...行实际上是输出回购名称,然后下一行是输出结果代码。
相反,您想要的是子进程。
import subprocess as sp
output = sp.getoutput("az repos list --query \"[?contains(name, 'PartsUnlimited')].[name]\" --project \"Parts Unlimited\" -o tsv")
print (output)
PartsUnlimitedhttps://stackoverflow.com/questions/68170120
复制相似问题