1
python的新手和我正在使用cmd的交互式shell,它採用定義的函數和參數並以if/then格式返回值。下面的例子。但我的問題是,每當用戶輸入一個函數,並且我向用戶返回一些東西時,如果他們只是按下回車鍵,他們就會收到最後提供的輸出。python交互式shell使用cmd重複語句沒有鍵入參數
例如下面的代碼...但基本上如果用戶沒有輸入一個參數或函數的事情,我只想要什麼都不顯示只是一個「」或空的空間。我認爲其他通過論證會爲我做到這一點,但顯然不是。我試過如果和elif一樣,結果也一樣。
示例輸出以 「test ARP」,只需按下回車鍵返回按下前面的說法:
[email protected]>test arp
? (192.168.50.1) at 0:26:88:38:c6:48 on en0 ifscope [ethernet]
? (192.168.50.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
> **<enter key>**
? (192.168.50.1) at 0:26:88:38:c6:48 on en0 ifscope [ethernet]
? (192.168.50.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
> **<enter key>**
示例代碼: #在/ usr /斌/包膜蟒蛇
from cmd import Cmd
from time import ctime
import csv, os, subprocess, getpass, socket, pwd, re, select, shutil, subprocess, sys
syntaxError = "Sorry that syntax isn't quite right..."
class cliPrompt(Cmd):
def do_test(self, args):
if len(args) == 0:
print syntaxError
if args == '?':
print 'want to read the help?'
if args == 'arp':
subprocess.call('arp -an', shell=True)
if args == 'cpu':
subprocess.call('grep "model name" /proc/cpuinfo', shell=True)
if args == 'firewall':
subprocess.call('iptables -L -v -n --line-numbers', shell=True)
if args == 'interfaces':
subprocess.call('ifconfig', shell=True)
else:
pass
if __name__ == '__main__':
prompt = cliPrompt()
prompt.prompt = '>'
prompt.cmdloop()
geez通常有助於閱讀cmd模塊文檔。爲了勝利! def emptyline(self): pass –