python 2中希望使用print时将\uxxxx的文字打印为中文

 python  python 2中希望使用print时将\uxxxx的文字打印为中文已关闭评论
5月 092020
 

在python 2里使用print打印含有\uxxx的中文字符时不能直接显示中文,可以使用下面的方式:

举例:

obj = [u’\u53c8\u6765\u5077\u5077\u770b\u6211′,u’\u7231\u6211\u4f60\u5c31\u544a\u8bc9\u6211′]

使用: print(repr(obj).decode(‘unicode-escape’))

 

obj=[‘又来偷偷看我’,’爱我你就告诉我’]

使用:print(repr(obj).decode(‘string-escape’))

 

python 3 没有这个问题

supervisord管理python进程时print(stdout)日志输出不及时,甚至有缺失问题解决

 python, supervisord  supervisord管理python进程时print(stdout)日志输出不及时,甚至有缺失问题解决已关闭评论
12月 192019
 

使用supervisord管理python进程,代码中print()打印的日志在使用tail -f查看时输出总是不及时,甚至有缺失问题,网络上有下面的几种方式解决:

If you are also using Supervisor to monitor and heal your long running Python projects and observed that output of your program is not being logged to stdout_logfile, it is because Python print statement does not automatically flush output to STDOUT.

One solution is using sys.stdout.flush() frequently to flush the output or if you are using Python 3.3, print(msg, flush=True) is another solution. However, a better solution is to run python with -u parameter (unbuffered mode).

以上总结方法:

  1. 频繁使用sys.stdout.flush()
  2. python3.3以后版本,print使用print(msg, flush=True)
  3. supervisord配置文件里command命令行添加-u参数(这个是最推荐的方法)

举例:

[program:analysis]
command = python -u AnalysisTest.py -port=70%(process_num)02d