2016-08-04 119 views
0

難以理解格式化程序選項。特別是字符串替換。如果我有一個非常長的python文件名,我怎麼才能把它切斷以保持一切?Python日誌記錄模塊格式化程序

formatter = logging.Formatter('%(asctime)s %(name)-15s %(threadName)-10s %(levelname)-8s %(message)s') 

,而我知道我可以做-15s部分不再給我之間更多的空間,我得到它如何切斷一個長文件名說「this_is_a_test_ok.py」,而不僅僅是填補所有的東西?我想我的最終輸出是非常柱狀的。

+0

爲了確保我能理解你:你只想用'm> n'打印長度爲m的字符串的第一個'n'字符,對吧?對於'n = 4'和字符串'abcde',在這種情況下你會期望'abcd'被打印出來。 –

+0

正確的是我想知道的。 – shawn

回答

1

只是測試它:

formatter = logging.Formatter('%(asctime)s %(name)-15.5s %(threadName)-10s %(levelname)-8s %(message)s') 

截斷日誌記錄器的名字5個字符。如何結合填充是另一個問題。

+0

也得到了填充。如果你不想爲自己弄砸,我可以將它添加到答案中。 – user3469861

+0

我很想看到填充處理。我不能這樣做:/ –

+0

抱歉,不要發佈結合填充和截斷的解決方案,但否則,您可能會錯過[this](https://pyformat.info/)優秀的cheatsheet,格式。它有一個針對特定問題的部分。我希望作者可以成爲官方Python文檔部門的付費作者。 – user3469861

相關問題