記錄python format中文對齊的方法

2021-10-03 19:55:59 字數 3355 閱讀 2690

#!/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

defalign_chinese

(menu_label)

: m_lb_spl = menu_label.split(

'|')

iflen

(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"<15}|"

.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 =

"<15}|"

.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" -->

"main menu"

>

"前期工具|prophase tools ..."

>

<

/menu>

"設定繫結工具|rig tools..."

>

<

/menu>

"動畫工具|animation tools"

>

<

/menu>

"燈光渲染工具|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

Python format函式詳解

python從2.6開始支援format,新的更加容易讀懂的字串格式化方法,從原來的 模式變成新的可讀性更強的 花括號宣告 用於渲染前的引數引用宣告,花括號裡可以用數字代表引用引數的序號,或者 變數名直接引用。從format引數引入的變數名 冒號 字元位數宣告 空白自動填補符 的宣告 千分位的宣告 ...

python format格式輸出

內容摘自 相對基本格式化輸出採用 的方法,format 功能更強大,該函式把字串當成乙個模板,通過傳入的引數進行格式化,並且使用大括號 作為特殊字元代替 1 不帶編號,即 2 帶數字編號,可調換順序,即 3 帶關鍵字,即 1 print format hello world 不帶字段 2 hello...

python format 用法詳解

str.format 這個特性從python2.6而來 其實實現的效果和 有些類似 不過有些地方更方便 通過位置對映 in 1 format kzc 18 out 1 kzc,18 in 2 format kzc 18 注意python2.6並不支援寫為空 out 2 kzc,18 in 3 for...