2011-06-20 16 views
1

自從我上一次用python「玩」已經很長時間了,最​​近我需要用它做些事情,但我不記得太多了,即使需要libs導入...你們可以給我是一隻手?如何使用python啓動並比較windows/console程序中的某些信息?

我給你舉個例子,它不是準確的比較,我需要,但它的工作就像它...

例如,我需要比較來自不同封裝的平收到了一些數據大小。

這是處理: 我想讓我的程序啓動ping命令到192.168.1.1,參數-l(緩衝區大小)從0到100,比較女巫是高還是低。 ..

事情是這樣的:

ping 192.168.1.1 -l 1 
1ms 
ping 192.168.1.1 -l 2 
1ms 
ping 192.168.1.1 -l 3 
2ms 

等等,所以當它到達-l 100,它給了我與平高參數(或更低),這樣的事情:

higher ping: 2ms (-l 3) 

謝謝你的幫助。

回答

0

使用subprocess.check_output並解析其輸出http://docs.python.org/library/subprocess.html#subprocess.check_output。根據文檔:

使用參數運行命令並將其輸出作爲字節字符串返回。

例如,

import subprocess, re 
c = subprocess.check_output(["ping","www.google.com"]) 
t = re.findall('time=(\d+)ms',c) #Or parse something like 'Maximum = 67ms' in the output 
max(t) 
>>> '67' 
+0

我該如何處理非窗口進程? – Shady

+0

使用完整路徑或將其添加到os.environ http://docs.python.org/library/os.html#os.environ – Medorator

+0

我已經成功地工作,但我的過程連續運行,就像一個ping -t ...我怎樣才能阻止它使用findall? – Shady

相關問題