直接和狭隘的问题是subprocess.call()返回退出状态(0如果grep没有失败,或者失败1了),而不是输出。这可以通过使用check_output()来解决:
version = subprocess.check_output(
"ansible --version | awk '/ansible [0-9].[0-9].[0-9]/ { print $2; exit }'", shell=True
).strip().decode('utf-8')
如果您想避免shell=True(值得称赞,但在您当前的用例中实际上并不是直接的安全问题),这可能如下所示:
import re
av = subprocess.check_output(['ansible', '--version'])
match = re.match('^ansible (\d+[.]\d+[.]\d+)$', av.split(b'\n')[0].decode('utf-8'))
if match is None:
raise Exception("Unable to get version number from ansible")
version = match.group(1)
如何使用 BeautifulSoup 将描述文本与这些标签中的文本隔离开来?到目前为止,我在 StackOverFlow 上发现的所有内容都表明它可能是可行的;但是我还没有找到专门尝试这样做的东西。
同样,从源代码中,我只想提取描述“施洗约翰为耶稣施洗……”。我怎么能去做这件事?
谢谢!再次为我缺乏扎实的知识而感到抱歉。
潇湘沐
幕布斯6054654
鸿蒙传说
相关分类