前言
由于是項(xiàng)目開(kāi)始之后才加入公司的矫渔,事前沒(méi)能和設(shè)計(jì)溝通UI資源文件需要用英文字母來(lái)命名啃奴。因?yàn)樵O(shè)計(jì)把整個(gè)項(xiàng)目所有的切圖都切好了(每個(gè)圖標(biāo)都有1倍圖腊满、2倍圖扯旷、3倍圖拯爽,加起來(lái)估計(jì)有幾百?gòu)垼屧O(shè)計(jì)或者開(kāi)發(fā)改都是個(gè)不小的工作量钧忽。
image.png
作為一個(gè)合格的碼農(nóng)毯炮,我想應(yīng)該從技術(shù)角度出發(fā)解決問(wèn)題。復(fù)雜問(wèn)題簡(jiǎn)單化耸黑,我們先做個(gè)需求分析:
- 拿到.png文件
- 把中文前綴轉(zhuǎn)拼音
- 保持后綴不變桃煎,重命名文件
ok,馬上打開(kāi)了Google崎坊,找?guī)毂纲鳌⒄液瘮?shù)、學(xué)語(yǔ)法奈揍。
- 如何拿到.png文件曲尸? -> 導(dǎo)入
import os, sys
兩個(gè)系統(tǒng)庫(kù)才能調(diào)用系統(tǒng)函數(shù)拿到文件類型
os.listdir()# 遍歷文件
os.path.splitext(oldFile)[0] # 取得文件前綴
os.path.splitext(oldFile)[-1] # 取得文件后綴
- 如何把中文前綴轉(zhuǎn)拼音?-> 利用開(kāi)源庫(kù)
from pypinyin import pinyin, lazy_pinyin, Style # github開(kāi)源的中文轉(zhuǎn)拼音庫(kù)男翰,感謝該庫(kù)的貢獻(xiàn)者
- 如何保持后綴不變另患,重命名文件? -> 到了這步只是書(shū)寫(xiě)業(yè)務(wù)邏輯而已了蛾绎,語(yǔ)法直接看文檔即可昆箕。http://www.runoob.com/python/python-tutorial.html
最終寫(xiě)好的代碼如下
import os, sys
from pypinyin import pinyin, lazy_pinyin, Style
tmp = [] # 用來(lái)保存中文轉(zhuǎn)拼音后的數(shù)組
print("\n 開(kāi)始轉(zhuǎn)換 ")
for oldFile in os.listdir(): # os.listdir():得到當(dāng)前目錄下所有的文件.
isPNG = ".png" in os.path.splitext(oldFile)[-1] # 判斷文件類型
if(isPNG == False):
print("這是" + os.path.splitext(oldFile)[-1]+"格式" + ",不是PNG我不轉(zhuǎn)")
pass
else:
tmp = lazy_pinyin(os.path.splitext(oldFile)[0]) # os.path.splitext(oldFile)[0]: 拿到文件前綴; lazy_pinyin(): 把中文轉(zhuǎn)成拼音是一個(gè)第三方庫(kù)pinyin的函數(shù)
newFile = ""
for j in tmp:
newFile += j # 因?yàn)樯厦嬷形霓D(zhuǎn)拼音之后會(huì)變成一個(gè)list,所有需要拼接起來(lái)
newFile += os.path.splitext(oldFile)[-1] # 新文件名拼接上后綴
os.rename(oldFile,newFile) # 調(diào)用系統(tǒng)函數(shù)os.rename(,)開(kāi)始重命名
print(oldFile + " -> " + newFile)
print("\n finish鸦列! ")
代碼地址: https://github.com/sushushu/changeFileNameToPinyin
用法:
- 先按照依賴包,終端執(zhí)行
pip3 install pypinyin
- 把代碼復(fù)制,生成
*.py
文件 -
cd
到UI資源文件路徑下鹏倘,執(zhí)行python3 *.py
轉(zhuǎn)換結(jié)果如下:
如果想要中文轉(zhuǎn)英文的話可以接入有道詞典的API接口薯嗤,不過(guò)就算翻譯成英文也只是死板的翻譯不會(huì)那么智能。
image.png