python format 中文对齐,py2,py3的不同
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