[英]storing output of a command in a variable
我有一個python結構文件fabfile.py。 我希望將一個本地命令的結果存儲在一個變量中,以便我可以針對各種情況對其進行測試。 例如,我想這樣做......
substring = "up-to-date"
msg = local("git pull")
if msg.find(substring) == -1:
"some action"
但我無法將輸出存儲在“msg變量”中。 我怎樣才能做到這一點 ?
我以前這樣做的方式是:
import subprocess
p = subprocess.Popen(['git', 'pull'], stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
out, err = p.communicate()
if "up-to-date" in out:
"some action"
我找到了解決方案,而且非常簡單。 我們只需要傳遞另一個參數capture=true
with local
來將命令的輸出存儲在變量中。
substring = "up-to-date"
msg = local("git pull", capture=true)
if substring in msg:
"do something"
else:
"do something else"
如果您使用的是2.6以上的Python版本,則可以使用popen,如下例所示。
import os
substring = "up-to-date"
msg = os.popen("git pull").read()
if msg.find(substring) == -1 :
print "do something"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.