相关疑难解决方法(0)

如何为Python日志输出着色?

前段时间,我看到一个带有彩色输出的Mono应用程序,可能是因为它的日志系统(因为所有的消息都是标准化的).

现在,Python有了这个logging模块,它允许你指定很多选项来自定义输出.所以,我想象Python可能会有类似的东西,但我无法在任何地方找到如何做到这一点.

有没有办法让Python logging模块输出颜色?

我想要的(例如)红色错误,蓝色或黄色调试消息,等等.

当然这可能需要一个兼容的终端(大多数现代终端); 但logging如果不支持颜色,我可以回退到原始输出.

有关如何使用记录模块获得彩色输出的任何想法?

python logging colors

326
推荐指数
23
解决办法
14万
查看次数

如何识别脚本是否在tty上运行?

我希望我的脚本在交互式shell会话中以及在使用重定向的stdout运行时(例如,当管道传递给其他命令时)采取不同的行为.

我如何识别Python脚本中发生了哪两个?

现有程序中此类行为的示例:grep --color = auto在交互式shell中运行时突出显示匹配,但在通过管道输入其他内容时则不会.

python shell

60
推荐指数
1
解决办法
2661
查看次数

使用argparse在Python中使用可选的stdin

我发现了非常有用的语法

parser.add_argument('-i', '--input-file', type=argparse.FileType('r'), default='-')
Run Code Online (Sandbox Code Playgroud)

用于指定输入文件或使用stdin - 我想在程序中使用它们.但是,并不总是需要输入文件.如果我没有使用-i或重定向输入

$ someprog | my_python_prog
$ my_python_prog < inputfile
Run Code Online (Sandbox Code Playgroud)

我不希望我的Python程序等待输入.我希望它只是移动并使用默认值.

python stdin argparse

60
推荐指数
3
解决办法
2万
查看次数

找出是否在IDLE或终端/命令提示符下运行python脚本

有没有办法找出python脚本是否在IDLE解释器或终端中运行?

如果可能,跨平台工作,或者如果每个平台需要不同的方式.

如果可能,使用Python 2和Python 3,或者如果每个版本需要不同的方式.

我能想到的唯一方法是检查为IDLE运行的进程,但我不知道该怎么做.

如果IDLE对另一个脚本打开并且我的脚本在终端中运行,即使我的脚本没有在IDLE中运行,进程检查也会返回true.

我的脚本需要以不同的方式运行,具体取决于它是在IDLE还是终端中运行.

python terminal cross-platform python-idle python-3.x

5
推荐指数
1
解决办法
2561
查看次数