代码贴过来会严重变形,简化了内容,伪代码式表达问题。。。, 例子:
例子:
makeData = {'D2_make_time':'32',
'D4_make_seq':'32',
'D16_make_zaijianum':'32',
'D2_make_time':'32',
'D9_make_carteam':'韵达',
'D11_make_goodteam':'A16'}
一般输出:
print(('|生产日:' + makeData['D2_make_time'].strip()),
'|产 次:' + makeData['D4_make_seq'].strip(),
'|在架数:' + makeData['D16_make_zaijianum'].strip(),
'|车 队:' + makeData['D9_make_carteam'].strip(),
'|货 队:' + makeData['D11_make_goodteam'].strip())
会这样:
|生产日:32 |产 次:32 |在架数:32 |车 队:SASNCKJP |货 队:ECMCDJEH
|生产日:32 |产 次:32 |在架数:32 |车 队:NAAKSE |货 队:ZKFGKFRTYKJJ
|生产日:32 |产 次:32 |在架数:32 |车 队:XXMEWQOOPKMU |货 队:IRTYNVSSMY
|生产日:32 |产 次:32 |在架数:32 |车 队:VBSKTHJNMM |货 队:DNFG
|生产日:32 |产 次:32 |在架数:32 |车 队:AERKJUI |货 队:QMSCGNYR
我想输出的比较规范一些,如果能长成这个样子就好了。。。
|生产日:32 |产 次:32 |在架数:32 |车 队:SASNCKJP |货 队:ECMCDJEH
|生产日:32 |产 次:32 |在架数:32 |车 队:NAAKSE |货 队:ZKFGKFRTYKJJ
|生产日:32 |产 次:32 |在架数:32 |车 队:XXMEWQOOPKMU |货 队:IRTYNVSSMY
|生产日:32 |产 次:32 |在架数:32 |车 队:VBSKTHJNMM |货 队:DNFG
|生产日:32 |产 次:32 |在架数:32 |车 队:AERKJUI |货 队:QMSCGNYR
我试过:
a = makeData['D2_make_time'].strip()
print(('|生产日:' + {}).format(a),
'|产 次:' + makeData['D4_make_seq'].strip(),
'|在架数:' + makeData['D16_make_rangqiu'].strip(),
'|车 队:' + makeData['D9_make_hometeam'].strip(),
'|货 队:' + makeData['D11_make_visiteam'].strip())
pccharm 会提示 format()只接受 str 类型,而不接受 dict 类型,那么也没必要再试%s 的 print 方法了吧?
1
chenqh 2018-08-28 15:59:14 +08:00
fill?
|
3
zhusimaji 2018-08-28 16:17:30 +08:00
pprint 了解下
|
4
746970179 2018-08-28 16:23:11 +08:00 1
对于字符串, 可以使用 ljust 方法, 这个方法进行左对齐, 同时用空格补齐剩下的空位
比如'abc'.ljust(5), 得到的就是 'abc ' , 后面有 2 个空格 还有你的代码格式, 可以这样 makeData = { 'D2_make_time':'32', 'D4_make_seq':'32', 'D16_make_zaijianum':'32', 'D2_make_time':'32', } 当一行写不完的时候, 左括号后面不要写代码, 直接换行 优点的话, 主要是方便. 因为直接写代码, 下面几行的缩进, 不一定是 4 个空格的整倍数了 还有一点就是如果注释某一行数据, 如果是第一行数据注释, 会比较麻烦 使用这种换行, 会更整齐 你 print 的括号里, 也可以这样 print( '|生产日:' + makeData['D2_make_time'].strip(), '|生产日:' + makeData['D2_make_time'].strip(), '|生产日:' + makeData['D2_make_time'].strip(), ) 大概这样 |
5
whoami9894 2018-08-28 16:25:35 +08:00 via Android
好好看看文档 format 怎么用
|
6
Yourshell 2018-08-28 16:27:58 +08:00 via iPhone
format 解包 dict 就行了,或者直接实现__str__
|
7
jswh 2018-08-28 16:47:14 +08:00
tab 字符不就是干这事的嘛
|
8
huangzhe8263 2018-08-28 17:03:51 +08:00
pprint +1
另外建议改为 dict constructor, 更直观, 并且 IDE 友好 makeData = dict( D2_make_time='32', D4_make_seq='32', D16_make_zaijianum='32', D2_make_time='32', D9_make_carteam='韵达', D11_make_goodteam='A16' ) 另外你 dict 的 keyword 重复了 |
9
lieh222 2018-08-28 17:11:41 +08:00
占位符啊
output_template = '|生产日:%-5s|产 次:%-5s|在架数:%-5s|车 队:%-5s|货 队:%-5s' %-5s,长度小于 5 的自动向右补全空格 |
10
iridescent0rsy 2018-08-28 17:20:53 +08:00
PrettyTable
``` import prettytable as pt ## 按行添加数据 tb = pt.PrettyTable() tb.field_names = ["City name", "Area", "Population", "Annual Rainfall"] tb.add_row(["Adelaide",1295, 1158259, 600.5]) tb.add_row(["Brisbane",5905, 1857594, 1146.4]) tb.add_row(["Darwin", 112, 120900, 1714.7]) tb.add_row(["Hobart", 1357, 205556,619.5]) print(tb) ``` ``` +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Adelaide | 1295 | 1158259 | 600.5 | | Brisbane | 5905 | 1857594 | 1146.4 | | Darwin | 112 | 120900 | 1714.7 | | Hobart | 1357 | 205556 | 619.5 | +-----------+------+------------+-----------------+ ``` |
11
zhusimaji 2018-08-28 17:50:01 +08:00 via iPhone
@iridescent0rsy 感觉这个跟 pandas 差不多了,楼主可以考虑 pd.DateFrame.from_dict 然后打印
|
13
TripleZ 2018-08-28 20:42:35 +08:00
用 `.format()` 或者是 `f""` 来格式化输出吧……
用库的话`prettytable` 和 `pandas` 看起来都不错。 |
14
hjq98765 2018-08-29 16:15:36 +08:00
|