首先下载安装 ImageMagick,如果是 Windows 系统,记得把可执行文件 magick.exe 所在的目录(例如 C:Program FilesImageMagick-7.1.1-Q16-HDRI )添加到 Path 以方便使用。

ImageMagick 是一款免费、开源的软件套件,用于编辑和操作数字图像。它可以用于创建、编辑、合成或转换位图图像,并支持广泛的文件格式,包括 JPEG、PNG、GIF、TIFF 和 PDF。

使用示例:

magick convert 01.jpg 02.jpg output.pdf

如果在 Windows 的 cmd 中使用这个命令语法合并大量图片为 PDF,可能会超出命令行长度限制, 我们可以使用 PowerShell 来避免这个问题。

简单写个 Python 脚本,直接生成 PowerShell 命令:

import os

directory = r'/path/to/directory'
files = os.listdir(directory)
command = 'magick convert'

for file in files:
    command = '{} {}'.format(command, file)
command = '{} {}'.format(command, 'output.pdf')

print(command)

执行脚本,复制输出的命令后,打开 PowerShell :

cd /path/to/directory
# 粘贴命令

图片多了很吃内存和CPU,耐心等待即可。

图片在很多子目录的情况

运行下面的脚本:

import os
import shutil

def move_and_rename_files(directory):
    # 获取目录下的子目录列表
    subdirectories = [subdir for subdir in os.listdir(directory) if os.path.isdir(os.path.join(directory, subdir))]

    for subdir in subdirectories:
        subdir_path = os.path.join(directory, subdir)
        files = os.listdir(subdir_path)

        for i, filename in enumerate(files):
            file_path = os.path.join(subdir_path, filename)

            # 生成新的文件名
            new_filename = f"{subdir}_{filename}"
            new_file_path = os.path.join(directory, new_filename)

            # 移动文件并重命名
            shutil.move(file_path, new_file_path)
            print(f"Moved '{filename}' to '{new_filename}'")

# 指定目录
directory_path = r"/path/to/directory"

# 调用函数移动和重命名文件
move_and_rename_files(directory_path)

在代码中,将/path/to/directory替换为您实际的目录路径。运行代码后,它会遍历目录下的子目录,将子目录中的文件移动到指定目录,并按子目录的名称和文件的名称重命名文件。

请注意,在运行代码之前,请确保您对目录中的文件进行了适当的备份,以防意外情况发生。