現在已經到了將所有打印轉換爲我所維護的庫中的日誌記錄調用的時候了。一些打印話費使用str.format
,像這樣(簡化):如何用逗號將數字記錄爲千位分隔符?
>>> n = 4000000
>>> print(f"this bird wouldn't voom if you put {n:,} volts through it!")
this bird wouldn't voom if you put 4,000,000 volts through it!
當我嘗試登錄它:
>>> log.warning("this bird wouldn't voom if you put %d, volts through it!", n)
WARNING:root:this bird wouldn't voom if you put 4000000, volts through it!
看來這不是正確指定的千位分隔符。在使用Python的stdlib日誌記錄模塊所需的%格式化語法時,如何指定千位分隔符?
目前使用此解決方案,爲數字直接其中確實得到期望的輸出,但由於變量第一次格式化使用str.format
,然後重新格式化爲一個字符串似乎是錯誤的,而不是記錄:
>>> log.warning("this bird wouldn't voom if you put %s volts through it!", format(n, ','))
WARNING:root:this bird wouldn't voom if you put 4,000,000 volts through it!
在黑暗中拍攝:使用['logging.Formatter'](https://docs.python.org/3/library/logging.html#logging.Formatter)與'style =「{」' –
So ,也許[這裏](https://docs.python.org/3/howto/logging-cookbook.html#use-of-alternative-formatting-styles)會有所幫助。 –
@ juanpa.arrivillaga我已經嘗試過,並且無法讓它工作。 '{'style用於模板格式本身,但不用於實際消息的參數。但是我可能錯過了一些東西 - 如果你能得到它的工作,通過一切手段添加一個答案。 – wim