print 中英混合输出,格式字符长短对齐的问题,似乎很多人都是.format 定参数去逐个细调的,感觉写起来很直接,事后看回去做调整,就看上去就觉得代码不够优雅了,有轮子不?

2021-03-01 18:05:35 +08:00
 uti6770werty

如:

colmsg = f'[{colrProcessPoolName}][{colrYellow(str(countt))}|{colrBule(str(QueenSize))}][T{colrGreen(str(TYPE))}][{dbTimeStr()}] 下载 {CaseName} {AnalyFunc.colrRed("[数据库文件]")} 耗时: [{AnalyFunc.colrBule(str(round((time.clock() - startTime),2)))}] 秒 '

这个只是挑了一句写得比较短的了....,那些颜色函数是另外写的

写起来容易,事后几月修改,看起来就像梵文了,而且输出对齐效果还不好(就是大家众所周知的字符位中英对齐不同的问题了)
还是问一句,可有好轮子?(主要还是想解决每个字段,中英统一对齐的问题)

2081 次点击
所在节点    Python
9 条回复
guxingke
2021-03-01 18:10:43 +08:00
搞个中英文 2:1 的等宽字体?
superrichman
2021-03-01 18:15:36 +08:00
弄个有中文等宽字体就好了
capre
2021-03-01 18:15:39 +08:00
尝试用制表位
est
2021-03-01 18:44:02 +08:00
我感觉 LZ 这个例子就是 f-string 比老办法更难看的的案例。。。
uti6770werty
2021-03-01 19:39:40 +08:00
@guxingke @superrichman 这个了解了一下,浅的理解是在 IDE 里调了会有效果,我没试过放到纯系统 CommandLine 的 Console 下看效果,但应该改字体不是好办法? 我不确定。。。

@capre 用过,感觉制表符不太管用的,偶然一些还是对不齐的,而且\t 在 code 上来看已经不直观了,抽象加个 tab 宽度,最终效果还是一半靠猜想。

@est 我自己看了也觉得难受。。。
jeffreychiu95
2021-03-01 21:31:30 +08:00
jones2000
2021-03-01 22:29:04 +08:00
这个是干什么用的呀? 一般系统上线不都是写日志的嘛, 要打印屏幕干什么?
uti6770werty
2021-03-01 22:46:02 +08:00
@jones2000 人肉眼神 Watch 之用

谢谢 @jeffreychiu95 的解答~
lxilu
2021-03-02 00:30:28 +08:00
转全角再输出。全角字母的原生用途

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/757377

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX