记录python format中文对齐的方法

2 篇文章 0 订阅
1 篇文章 0 订阅

Pyhon2在目前的工作中仍然要用到,所以,记录一下两个版本对于处理中文对齐的方法

#!/usr/bin/env python
# -*- coding: utf-8 -*-
try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET
import os, re, sys
def align_chinese(menu_label):
    m_lb_spl = menu_label.split('|')
    if len(m_lb_spl) == 1: return menu_label
    m_pre, m_suff = m_lb_spl[0], '|'.join(m_lb_spl[1:])
    c_vsn = sys.version #根据不同的python版本,做不通的处理
    if re.search('2.7', c_vsn, re.I):
        print("python 2: {}".format(c_vsn))
        n_lb = u"{0:{md}<15}|{1}".format(m_pre, m_suff, md=unichr(12288))
        return (n_lb)
    elif re.search('3.', c_vsn, re.I):
        print("python 3: {}".format(c_vsn))
        n_lb = "{0:{md}<15}|{1}".format(m_pre, m_suff, md=chr(12288))
        return (n_lb)
if __name__ == "__main__":
    file_path = __file__
    xmlf=os.path.normpath(os.path.join(os.path.dirname(file_path),'menu_deploy_simp.xml'))
    tree = ET.ElementTree(file=xmlf)
    root = tree.getroot()
    for m in root:
        m_lb = m.get('label')
        if not m_lb:continue
        ret_new_label = align_chinese(m_lb)
        print(ret_new_label)

xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- newLine="~N" Qoutation Mark="~S" -->
<menu label="Main Menu">
    <menu label="前期工具|Prophase Tools ...">
    </menu>
    <menu label="设置绑定工具|Rig Tools...">
    </menu>
    <menu label="动画工具|Animation Tools">
    </menu>
    <menu label="灯光渲染工具|Lighting Rendering|other...">
    </menu>
</menu>


在python2 和 pyhon3 下运行的结果

D:\Anaconda3\envs\py2\envs\OCT\python.exe F:/development/OCT/maya_dev/Python2/OCT2G_menu/read_xml_test.py
python 2: 2.7.17 (default, Oct 28 2019, 21:35:07) [MSC v.1500 64 bit (AMD64)]
前期工具           |Prophase Tools ...
python 2: 2.7.17 (default, Oct 28 2019, 21:35:07) [MSC v.1500 64 bit (AMD64)]
设置绑定工具         |Rig Tools...
python 2: 2.7.17 (default, Oct 28 2019, 21:35:07) [MSC v.1500 64 bit (AMD64)]
动画工具           |Animation Tools
python 2: 2.7.17 (default, Oct 28 2019, 21:35:07) [MSC v.1500 64 bit (AMD64)]
灯光渲染工具         |Lighting Rendering|other...

Process finished with exit code 0
D:\Anaconda3\envs\myProj\python.exe F:/development/OCT/maya_dev/Python2/OCT2G_menu/read_xml_test.py
python 3: 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
前期工具           |Prophase Tools ...
python 3: 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
设置绑定工具         |Rig Tools...
python 3: 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
动画工具           |Animation Tools
python 3: 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
灯光渲染工具         |Lighting Rendering|other...

Process finished with exit code 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值