我用一个简单的 Python 脚本替换了 3 个付费的生产力应用
为多款应用付费,而我甚至没有充分使用它们,感觉像是在浪费。每个应用都有不同的用途,但有一个共同的目标:管理和整理我的文件。单独看,每个应用都很合理。但放在一起,它们感觉有些过头了。
那时我意识到了一些事情。为什么我需要为几乎相同的任务使用三个不同的付费工具呢?我打开了一个代码编辑器,并开始运用我的 Python 技能来想出一些东西。结果比我预期的要好。不是,它并不能完全替代那些工具。但它能完成工作。
文件杂耍者
文件自动化很棒,直到它开始感觉像是过度工程
我安装 File Juggler 的原因非常简单:我的下载文件夹一片混乱。截图混在 PDF 文件中,随机的 ZIP 文件和图片放在一起,安装程序堆积如山。File Juggler 承诺通过规则自动管理这些文件:“把图片移动到这里”,“把文档发送到那里”,“如果符合条件就重命名这个”。公平地说,它确实非常有效。
但像许多这些自动化工具一样,它有一个附带条件。试用期过后,你需要付费才能继续使用它。更重要的是,随着我深入了解它,我越发意识到我实际上并不需要它提供的大部分功能。
在某个时刻,我恍然大悟:这实际上并不是一个“功能丰富的自动化问题”。它只是对文件进行循环,并带有一些条件。这是 Python 可以轻松处理的事情。
这是一个简化版本,展示了它被替代成什么样子:
from pathlib import Path
import shutil
source = Path("C:/Users/YourName/Downloads")
folders = {
".jpg": "Images",
".png": "Images",
".pdf": "Documents",
".zip": "Archives",
".exe": "Installers"
}
for file in source.iterdir():
if file.is_file():
target_folder = folders.get(file.suffix.lower())
if target_folder:
destination = source / target_folder
destination.mkdir(exist_ok=True)
shutil.move(str(file), destination / file.name)即使你以前从未写过 Python,这也相当易读:
- 我们查看下载文件夹中的每个文件
- 检查其扩展名(
.jpg、.pdf等) - 将其与一个简单的规则词典进行匹配
- 将它移动到相应的文件夹中
明确地说,File Juggler 的功能远不止这些。它可以实时监控文件夹,应用复杂的条件,甚至触发超出简单文件移动的操作。但我并没有使用这些功能。我只是需要我的文件去到它们应该去的地方。为此,十几行 Python 代码就绰绰有余了。
高级重命名工具
我只是触及了一个强大工具的表面
如果有一类实用软件容易用得过头,那就是批量重命名工具。Advanced Renamer 是一个很好的例子。它功能非常强大。你可以建立复杂的重命名规则,使用标签,应用脚本,实时预览更改,并微调文件名的几乎每个部分。值得称道的是,它甚至提供了一个供个人使用的免费版本。
然而,如果你是专业使用它,你将需要一个许可证。一些更高级的功能显然也是针对付费用户的。至少对我来说,问题要简单得多。
大多数时候,我只是想清理杂乱的文件名,应用一致的命名模式,也许还会添加一个数字或日期。但每次我打开 Advanced Renamer 时,都被一个充满我不需要的选项的复杂界面迎接。
在某个时刻,我意识到这跟以前的模式一样:我在用一个非常强大的工具来完成一个非常可预测的任务。取而代之的是这个:
from pathlib import Path
folder = Path("C:/Users/YourName/Downloads/Images")
files = [f for f in folder.glob("*") if f.is_file()]
for i, file in enumerate(files):
new_name = folder / f"photo_{i+1}{file.suffix}"
if not new_name.exists():
file.rename(new_name)
else:
print(f"Skipped: {new_name.name} already exists!")
这个脚本做三件简单的事情:
- 循环遍历文件夹中的所有文件
- 给每一个分配一个连续的编号
- 使用一致的格式重命名它们
对于更高级的用例,Python 还支持正则表达式,这意味着你可以复制这些工具所宣传的许多智能重命名逻辑。但实际上,我很少需要那种复杂程度。
Adobe Acrobat 专业版
仅仅为了合并几个 PDF 就付订阅费让我觉得不太合适
PDF 工具是那种你平时不会想到,但突然需要时才意识到的重要工具。对我来说,这通常意味着合并几个 PDF、重新排列页面,或者偶尔将图像转换成一个文档。我发现 Adobe Acrobat Pro 在这方面相当不错。它可以处理你可能需要的所有 PDF 操作。但它是基于订阅的。
虽然 Acrobat 功能非常强大,但我并没有使用它 95% 的功能。我没有编辑复杂的文档,也没有添加注释或处理 OCR。再一次,模式很熟悉:任务本身很简单,只是被一个庞大的界面和付费订阅所掩盖。
它被以下内容取代了:
from pypdf import PdfWriter
files = ["file1.pdf", "file2.pdf", "file3.pdf"]
merger = PdfWriter()
for file in files:
merger.append(file)
merger.write("merged.pdf")
merger.close()
此脚本将一列 PDF 合并为一个文件。如果你需要更多的灵活性,你可以轻松地扩展它以自动抓取文件夹中的所有 PDF,在合并前对它们进行排序,并动态重命名输出文件。
对于需要将图像转换为 PDF 的情况,使用 Pillow 的一个小补充就可以轻松处理。
一个用于文件管理的单一可重复使用的工具
最初只是一个小实验,结果却改变了我在 Windows 上处理日常任务时使用这些工具的方式。目标并不是要取代我提到的软件。我只是想看看是否可以将我最常用的功能放入一个 Python 脚本中。我对最终的结果感到非常满意。









