随笔 - 批量重命名 APK 文件的 Python 脚本

为了方便整理文件,我简单搓了个 Python 脚本来按一定格式批量重命名 APK 文件

使用方式

把脚本文件放到想要重命名的文件夹里然后运行即可,脚本会进行如下操作:

  1. 递归遍历当前文件夹和子文件夹
  2. 找出文件名为 *.{apk,1} 的所有文件
  3. 使用 https://github.com/appknox/pyaxmlparser 来解析 APK 的文件信息,并按 <应用名>-<包名>-<版本名>(<版本号>).apk 的格式重命名,若重名则删除文件

代码

rename_apk.pyview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import os
from pyaxmlparser import APK


def get_new_filename(oldname):
apk = APK(oldname)
result = rf'{apk.application}-{apk.package}-{apk.version_name}({apk.version_code}).apk'
# for Windows
return result.translate(str.maketrans(r'\/:*?"<>|', '_'*9))


for dirpath, _, filenames in os.walk('.'):
print(f'In "{dirpath}":')
for filename in filter(lambda x: x.endswith('.apk') or x.endswith('.1'), filenames):
try:
oldname = os.path.join(dirpath, filename)
new_filename = get_new_filename(oldname)
if filename == new_filename:
continue
os.rename(oldname, os.path.join(dirpath, new_filename))
print(f'\t"{filename}" -> "{new_filename}"')
except FileExistsError:
os.remove(oldname)
print(f'\t"{filename}" removed because "{new_filename}" exists')
except Exception as e:
print(f'Error occured on "{filename}"')
raise e