#!/bin/bash
mkdir /home/$USER/test
for i in *.jpg; do
read -r w h <<<$(identify -format "%w %h" "$i")
if [ `expr $h / $w` == `expr 4 / 3` ]; then
cp "$i" /home/$USER/test/
fi
done
#!/usr/bin/env python3
import os
import shutil
from PIL import Image
import sys
dr = sys.argv[1]; target = sys.argv[2]
for root, dirs, files in os.walk(dr):
for f in files:
try:
file = root+"/"+f
img = Image.open(file); size = img.size; ratio = size[0]/size[1]
if ratio == 4/3:
shutil.copyfile(file, target+"/"+f)
except (IOError, ValueError):
pass
#!/usr/bin/env python3
import os
import shutil
from PIL import Image
import sys
dr = sys.argv[1]; target = sys.argv[2]
for f in os.listdir(dr):
try:
file = dr+"/"+f
img = Image.open(file); size = img.size; ratio = size[0]/size[1]
if ratio == 4/3:
shutil.copyfile(file, target+"/"+f)
except (IOError, ValueError):
pass
您可以为此使用简单的 shell 脚本。
search.sh
使用在您的照片文件夹中创建任何文件并粘贴以下行:
Ctrl使用+保存此文件s并使用使其可执行
然后使用命令执行它
它将复制所有必须在您的主目录中的目录的
4:3
照片。test
如果你想复制到闪存驱动器或其他地方,然后在脚本中进行更改,如果identify
命令在你的系统中不可用,那么你可以使用命令安装:从递归目录中提取图像
下面的脚本会将 4:3 比例的图像从源目录递归地复制到目标目录中。该脚本读取所有常见的图像格式,忽略非图像文件(提高
IOError
)如何使用
search_ratio.py
通过命令运行它:
如果一个或多个目录包含空格,请使用引号。
我用于测试的示例命令:
如果您从“平面”(单个)目录中提取图像
那么脚本可以简单一点:
完全像第一个一样使用它。
请注意,对于第一个脚本,如果不同源文件夹中的名称重复,您将遇到名称冲突。