2016-08-04 114 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

相关问题