惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
H
Help Net Security
Last Week in AI
Last Week in AI
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
B
Blog
C
Check Point Blog
T
Tailwind CSS Blog
云风的 BLOG
云风的 BLOG
D
Docker
Recent Announcements
Recent Announcements
Vercel News
Vercel News
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
月光博客
月光博客
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
B
Blog RSS Feed
The Register - Security
The Register - Security
V
Visual Studio Blog
F
Full Disclosure
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
Latest news
Latest news
PCI Perspectives
PCI Perspectives
Cisco Talos Blog
Cisco Talos Blog
博客园 - Franky
D
DataBreaches.Net
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
P
Palo Alto Networks Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
T
Tenable Blog
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy

Tifa's Blog

随笔 - 关于 C++ 模板的部分特化 随笔 - Miller-Rabin + Pollard-Rho 分解质因子的时间复杂度分析 VP 记录 - 2021 CCPC 哈尔滨站 VP 记录 - 2023 ICPC 亚洲区域赛 (南京) VP 记录 - 2023 CCPC 哈尔滨站 VP 记录 - 2023 CCPC 桂林站 VP 记录 - 2023 ICPC 亚洲区域赛 (网络预选赛 Ⅰ) VP 记录 - 2021 ICPC 亚洲区域赛 (澳门) 题解 - [Luogu P7486] 「Stoi2031」彩虹 拟阵简介(unfin) 题解 - [Luogu P5824] 十二重计数法 随笔 - C++ 的高维向量 | Tifa's Blog 目录 - 算法竞赛模板 | Tifa's Blog 目录 - 学术垃圾 | Tifa's Blog 比赛记录 - Codeforces Round #842 (Div. 2) 比赛记录 - Hello 2023 | Tifa's Blog 比赛记录 - Codeforces Round #841 (Div. 2) and Divide by Zero 2022 随笔 - C++ 基于标签分发的线性筛 | Tifa's Blog VP 记录 - 2022 ICPC 亚洲区域赛 (杭州) VP 记录 - 2022 ICPC 亚洲区域赛 (济南)
随笔 - 批量重命名 APK 文件的 Python 脚本
Tifa · 2024-02-18 · via Tifa's Blog

为了方便整理文件, 我简单搓了个 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'

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