2011-09-01 96 views
0

美好的一天。Python新手,需要一些幫助

我在一些幫助之後,可能會在這裏深陷其中。

我想寫一個插件,檢查服務是否在或在Mac OS X服務器上。該插件需要用python編寫,我已經設法創建了一些能夠給我結果的東西,但我需要一些幫助才能完成。

import os 
os.system("serveradmin status afp") 
os.system("serveradmin status dhcp") 
os.system("serveradmin status dirserv") 
os.system("serveradmin status dns") 
os.system("serveradmin status ftp") 

因此,如果將以下內容保存到test.py中,然後鍵入:python test.py到終端中,我會得到一個結果。

我創建的插件需要一個類和一個返回Python字典的run(self)類方法。

這是我跌倒了。任何人都可以指出我的方向。

謝謝

+1

http://docs.python.org/tutorial/classes.html – agf

+0

把它作爲一個不是問題的結論是有點苛刻。幫助改善問題會更好。 – MattH

+0

@Alexis:您需要從正在運行的命令中收集輸出和/或狀態。將結果放在字典中並返回字典。這是馬塞洛坎託斯的答案或多或少。這取決於插件應該完全返回的內容。 – MattH

回答

1

這將是沿着這些線的東西。

class someclass: 
    def run(self): 
     return dict((svc, os.popen('serveradmin status ' + svc, 'r').read().strip()) 
        for svc in ('afp', 'dhcp', 'dirserv', 'dns', 'ftp')) 
+0

感謝您的支持,但似乎沒有結果。這可能只是因爲它沒有設置爲顯示輸出。有沒有辦法做到這一點? – Alexis

+0

如果函數的目的是返回一個字典,那麼我猜它不應該顯示輸出。我不知道你在爲這個插件編寫什麼,所以我不能提供更詳細的幫助。 –

+0

'subprocess'會更好'os.popen'。 – glglgl