![](/img/trans.png)
[英]OS X "which python" points to python2.7 instead of Anaconda python3.9
[英]logging message from python2.7 to python3.9 vice versa
我是 python 的新手,并试图将应用程序从python2.7
移植到python 3.9
并在将消息记录到文件时遇到问题
我已经设置了日志记录配置
logging.basicConfig(filename='example.log', encoding='utf-8', level=logging.DEBUG)
和
尝试将日志写入文件时,出现错误。
logging.info ( "CRL_TO_PEM_CMD =",CRL_TO_PEM_CMD )
在 2.7 和 3.9 中都给出了以下错误
类型错误:字符串格式化期间并非所有 arguments 都转换
logging.info ( f"CRL_TO_PEM_CMD ={CRL_TO_PEM_CMD}" )
在 3.9 中工作正常,在 2.7 中给出错误
如何编写适用于 2.7 和 3.9 的语句?
Python2 和 Python3 上的默认日志记录样式是%
-formatting aka printf-formatting 。 在msg
中使用%
样式的占位符, logging
模块将根据需要插入其他 arguments 。
logging.info("CRL_TO_PEM_CMD = %s", CRL_TO_PEM_CMD )
如果CRL_TO_PEM_CMD
是一个字符串,您可以使用:
logging.info ("CRL_TO_PEM_CMD =" + CRL_TO_PEM_CMD)
如果没有,您需要先将其转换为str
:
logging.info ("CRL_TO_PEM_CMD =" + str(CRL_TO_PEM_CMD))
顺便说一句,您可以使用同时支持 Python 2 和 3 的字符串格式。它可用于将每种类型的数据与字符串连接起来。
例如
logging.info ("CRL_TO_PEM_CMD ={}".format(CRL_TO_PEM_CMD))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.