前 言
工作之余我自己會剪一些游戲GMV(game music video),因此經(jīng)常需要去找一些音頻素材。而網(wǎng)盤資源里的素材文件,大部分都是英文標(biāo)題,使用起來很不方便。所以我就做了一個一鍵批量翻譯文件名的工具。
實 現(xiàn)
主要是調(diào)用了百度翻譯API,支持將指定目錄下的所有音頻文件標(biāo)題一鍵翻譯成中文。功能也比較簡單,這里就不再贅述,有興趣的可以訪問GitHub源碼。
百度翻譯API相關(guān)內(nèi)容可以訪問官網(wǎng)鏈接。
總 結(jié)
這里總結(jié)下開發(fā)遇到的一些問題和代碼優(yōu)化
1. exit 未定義
代碼里使用了exit()來退出程序,打包為exe執(zhí)行后,會報錯:
NameError: name 'exit' is not defined
解決:將exit()改為sys.exit()即可。
2. 檢查字符串為空
代碼里想要判斷字符串是否為空或全空格,所以一開始實現(xiàn)的代碼:
def check_string(str):
return len(str) == 0 or str.isspace()
看著比較臃腫,改進(jìn)如下:
def check_string(str):
return not str.strip()
用strip()去除空格后,直接返回判斷即可。
3. 使用 f-strings
在調(diào)用API時,需要拼接url地址,例如:
myurl = api_url + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + sign
可以使用f-strings風(fēng)格去拼接字符串,修改如下:
myurl = f"{api_url}?appid={appid}&q={urllib.parse.quote(q)}&from={fromLang}&to={toLang}&salt={str(salt)}&sign={sign}"