簡體   English   中英

將命令的輸出存儲在變量中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM