私はPython 2's cmd moduleを使ってプログラムのコマンドラインを作っています。私は私のプロンプトに色を追加しない限り、すべてうまく動作します。いくつかの文字はPythonの私の色付きプロンプトに固執しますcmd
の作業コード:私は長いコマンドを入力するか、コマンド履歴に検索しようとした場合、私は、以下のように自分のコードを変更
from cmd import Cmd
class App(Cmd):
def __init__(self):
Cmd.__init__(self)
self.prompt = "PG ["+ (str('username'), 'green') +"@"+ str('hostname') +"]: "
def do_exit(self, line):
'''
'''
return True
App().cmdloop()
は、一部の文字が私のプロンプトに固執します。
問題コード:
from cmd import Cmd
class App(Cmd):
def __init__(self):
Cmd.__init__(self)
self.prompt = "PG ["+ self.colorize(str('username'), 'green') +"@"+ str('hostname') +"]: "
colorcodes = {'green':{True:'\x1b[32m',False:'\x1b[39m'}}
def colorize(self, val, color):
return self.colorcodes[color][True] + val + self.colorcodes[color][False]
def do_exit(self, line):
'''
'''
return True
App().cmdloop()
あなたはasciicastsでこの問題を見ることができます。この問題はcmd2 moduleにも存在します。
@cxwはい、Python2と 'cmd'ですが、この問題は' cmd2'でもあります! – RaminNietzsche