用Python簡化安卓開發系列

hjm_1fb1990發表於2017-06-29

準備工作(可選,mac環境)

安裝Homebrew
安裝python3
設定預設python
安裝python編輯器Sublime3

用Python檢查資原始檔是否Valid

有時候編譯打包時會報資原始檔格式錯誤。比如某個jpg的檔案被重新命名為png, 然後放到了圖片資源目錄下,就可能導致編譯失敗。
為此寫了一個Python指令碼來自動檢測此類錯誤。

# -*- coding: utf-8 -*-
import os
import imghdr

PATH = r"/Users/apple/Desktop"
pngString = "png"
for path, dirs, files in os.walk(PATH):
    for filename in files:
        fullpath = os.path.join(path, filename)
        format = imghdr.what(fullpath)
        if format != pngString:
           print(fullpath)

PATH 是要檢測的路徑名,walk方法會遍歷改PATH下的所有檔案,包括子資料夾下的檔案。然後檢測真實的格式(format)(即使重新命名過也沒事)。最後如果格式不是png,就會列印出檔名。

使用方法:
1. 文字編輯器複製這段程式碼,儲存為.py結尾的檔案。
2. 改成自己的檢測路徑
3. 在命令列中執行,比如python /Users/apple/Desktop/imgcheck.py 即可

批量重新命名圖片並複製到drawable資料夾

帶註釋的指令碼:

# -*- coding: utf-8 -*-
import os
import shutil

# 從哪裡拷貝圖片
pathFrom = input("move drawable from:").strip()
# 拷貝到哪個資料夾  比如專案下的drawable—xhdpi資料夾
pathTo = input("move drawable to:").strip()
# 要批量重新命名的字串 一般是@2x。也是需要複製的圖片的標誌,因為如果不需要重新命名的話,就直接複製 不需要指令碼了。
iDentifyString = input("iDentifyString:").strip()
for path, dirs, files in os.walk(pathFrom):
    for fileName in files:
        print(fileName)
        if iDentifyString.lower() in fileName.lower():
            fromFullpath = os.path.join(path, fileName)
            # 去掉@2x 替換不合法方字元 改成小寫
            newFileName = fileName.replace(
                iDentifyString, "").replace("-", "_").lower()
            print(newFileName)
            toFullPath = os.path.join(pathTo, newFileName)
            shutil.copyfile(fromFullpath, toFullPath)

使用場景:UI給了切圖,但是是按IOS命名的。@2x @3x 這樣。安卓只需要拿@2x的圖片,並去掉@2x這幾個字元。

相關文章