相关疑难解决方法(0)

随机更改Python解释器中的提示

总是>>>在Python中看到提示是很无聊的.什么是随机更改提示前缀的最佳方法?

我想象一下这样的互动:

This is a tobbaconist!>> import sys
Sorry?>> import math
Sorry?>> print sys.ps1
Sorry?
What?>>
Run Code Online (Sandbox Code Playgroud)

python prompt python-interactive

37
推荐指数
4
解决办法
3108
查看次数

更改Python交互式提示">>>"

这可能是一个愚蠢的问题,我可能会最终将其删除,一旦我搞清楚,但我发誓我记得读,在Python 3.5文档,如何改变>>>对Python的交互提示,例如,如何调用help()意志改为help>.但出于某种原因,当我回去试图记住时,我却找不到它的指示.有谁知道这是可能的,还是我只想象事情?

谢谢

python command-line command-line-interface python-3.x

20
推荐指数
2
解决办法
4360
查看次数

一些字符贴在我的Python cmd中的彩色提示符上

我正在使用Python 2的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()
Run Code Online (Sandbox Code Playgroud)

当我更改下面的代码时,如果我输入一个长命令或尝试搜索命令历史记录,一些字符会坚持我的提示.

问题代码:

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()
Run Code Online (Sandbox Code Playgroud)

你可以在asciicasts中看到这个问题.cmd2模块也存在问题.

python colors readline command-line-interface python-2.x

9
推荐指数
1
解决办法
377
查看次数

在python解释器提示中添加颜色,不能正确包装

我想在终端上有一个更加丰富多彩的Python提示,只是为了便于阅读.我目前有:

sys.ps1 = '\033[96m>>> \033[0m'
sys.ps2 = '\033[96m... \033[0m'
Run Code Online (Sandbox Code Playgroud)

在我的PYTHONSTARTUP文件中,它根据需要提供颜色.但是,行上的任何文本都无法正确包装.文本到达行的末尾,而不是立即开始新行,在开始换行之前开始覆盖第一行的开头.正如您可能想象的那样,这实际上是不可读的.我该如何解决这个问题?

python bash

7
推荐指数
1
解决办法
3133
查看次数

彩色的readline提示打破了控制-a

以下程序打印彩色的readline提示.它打破了控制-a(光标最终向右移动得比它应该的更远):

#include <readline/readline.h>
#include <readline/history.h>

#define CYELLOW "\001\e[0;31m\002"
#define RESET   "\001\e[0m\002"

int main(int argc, char **argv)
{
    readline(CYELLOW "prompt> " RESET);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

control-a在我没有彩色提示时调用readline()时起作用:

readline("prompt> ");
Run Code Online (Sandbox Code Playgroud)

我正在使用Mac OS X 10.9.4.这是otool的输出:

/usr/lib/libreadline.dylib:
    /usr/lib/libedit.3.dylib (compatibility version 2.0.0, current version 3.0.0)
    /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1
Run Code Online (Sandbox Code Playgroud)

有几个stackoverflow问题似乎涉及到这个:

他们都提到颜色标记需要被\ 001和\ 002括起来.我遵循了那些指示,但控制权仍然被打破了.

c macos readline

2
推荐指数
1
解决办法
572
查看次数