停止cmdloop()从python中的输入行中剥离空白
简而言之,我的代码如下所示:停止cmdloop()从python中的输入行中剥离空白,python,Python,简而言之,我的代码如下所示: class myClass(cmd.Cmd): def do_myFunction(self, line): print line+'!' if __name__ == '__main__: myClass().cmdloop() 当我在命令行中使用此命令并在末尾键入一行空格时,cmdloop()readline似乎会自动将它们剥离,而不是打印: myline ! 它打印: myline! 有人知道怎么解决这个问题吗?提前谢谢 从评论中复制
class myClass(cmd.Cmd):
def do_myFunction(self, line):
print line+'!'
if __name__ == '__main__:
myClass().cmdloop()
当我在命令行中使用此命令并在末尾键入一行空格时,cmdloop()readline似乎会自动将它们剥离,而不是打印:
myline !
它打印:
myline!
有人知道怎么解决这个问题吗?提前谢谢 从评论中复制答案,以便从“未回答”筛选器中删除此问题:
“它看起来像是重写了
parseline()
方法,并执行了与现在基本相同的操作,但删除对.strip()
的调用将修复它,而无需重写整个模块…”
~有礼貌地回答您应该在第4行留出一个空格,如下所示:
print line+' !'
而不是:
print line+'!'
字符串中的额外空间将“推”字符串!离开绳子的其余部分。我希望这对你有帮助 如果不重写整个模块,我认为这是不可能的。你为什么想要这种行为?如果你使用
打印行“!”
,会发生什么?@Noelkd:OP显然想要输入的是真正的空白,而不仅仅是输出中的一个小空格,不管输入的是什么。他可能只想要一个空白,但是您的权利我的答案不是答案,因此改为注释。它看起来像是覆盖了parseline()
方法,并且做了与现在基本相同的事情,但是删除了对的调用。strip()
将修复它,而无需重写整个模块……您可以在这里找到parseline
的源代码: