Added rootdir and modified to use shutils
This commit is contained in:
parent
d0b512080e
commit
022ca14a00
17
README.md
17
README.md
@ -2,13 +2,14 @@
|
|||||||
|
|
||||||
A script for sorting pictures (namely, wallpapers) by size.
|
A script for sorting pictures (namely, wallpapers) by size.
|
||||||
|
|
||||||
It looks for a folder named "wallpapers" in its directory. It then moves all pictures into folders it creates, depending on their size. All pictures that do not fit either a predefined format go in the "SD" folder.
|
We take a folder containing unsorted wallpapers of all sizes and sort them by size by putting them into discrete folders.
|
||||||
|
|
||||||
# Formats
|
# Use
|
||||||
## 16:9
|
Create a venv and install requirements:
|
||||||
* hd (1920 x 1080)
|
```
|
||||||
* 2k (2560 x 1440)
|
python3 -m venv myvenv
|
||||||
* 4k (4096 x 2160)
|
myvenv/bin/activate
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
# 21:9
|
Take a look at the configuration section inside the script and then launch it.
|
||||||
* 2k (3440 x 1440)
|
|
||||||
|
43
sizer.py
43
sizer.py
@ -3,6 +3,7 @@
|
|||||||
import cv2
|
import cv2
|
||||||
import os
|
import os
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
import shutil
|
||||||
|
|
||||||
def pic_size_find(pic_path: str):
|
def pic_size_find(pic_path: str):
|
||||||
img = cv2.imread(pic_path,0)
|
img = cv2.imread(pic_path,0)
|
||||||
@ -15,37 +16,43 @@ def pics_list(path:os.path):
|
|||||||
return files
|
return files
|
||||||
|
|
||||||
def file_move(file, dest):
|
def file_move(file, dest):
|
||||||
os.rename(file, dest)
|
shutil.move(file, dest)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
#For landscape
|
#------------------ CONFIG START
|
||||||
|
#Where the wallpaper folders are, must end in "/"
|
||||||
|
rootdir = "/home/justine/NAS/Gallery/"
|
||||||
|
|
||||||
|
#Folder names for landscape
|
||||||
folder4k = "Wallpapers_4K"
|
folder4k = "Wallpapers_4K"
|
||||||
folder2k = "Wallpapers_2k"
|
folder2k = "Wallpapers_2k"
|
||||||
folderhd = "Wallpapers_hd"
|
folderhd = "Wallpapers_hd"
|
||||||
foldersd = "Wallpapers_sd"
|
foldersd = "Wallpapers_other_def"
|
||||||
folderuw = "UltrawideWallpapers"
|
folderuw = "UltrawideWallpapers"
|
||||||
|
|
||||||
#For portrait
|
#Folder names for portrait
|
||||||
vert4k = "Vertical_4k"
|
vert4k = "Vertical_4k"
|
||||||
vert2k = "Vertical_2k"
|
vert2k = "Vertical_2k"
|
||||||
verthd = "Vertical_hd"
|
verthd = "Vertical_hd"
|
||||||
vertuw = "Vertical_ultrawide"
|
vertuw = "Vertical_ultrawide"
|
||||||
|
|
||||||
|
#Resolutions to check against
|
||||||
res4k = (4096, 2160)
|
res4k = (4096, 2160)
|
||||||
reslow4k = (3840, 2160)
|
reslow4k = (3840, 2160)
|
||||||
res2k = (2560, 1440)
|
res2k = (2560, 1440)
|
||||||
reshd = (1920, 1080)
|
reshd = (1920, 1080)
|
||||||
resuw = (3440, 1440)
|
resuw = (3440, 1440)
|
||||||
|
|
||||||
#VARS
|
#Where to look for the unsorted wallpapers
|
||||||
orig_folder = "VerticalWallpapers"
|
orig_folder = "/home/justine/Pictures/Unsorted"
|
||||||
|
#------------------ CONFIG END
|
||||||
|
|
||||||
print("Size begins !")
|
print("Size begins !")
|
||||||
|
|
||||||
for folder in [folder4k, folder2k, folderhd, foldersd, folderuw, vert2k, vert4k, verthd, vertuw]:
|
for folder in [folder4k, folder2k, folderhd, foldersd, folderuw, vert2k, vert4k, verthd, vertuw]:
|
||||||
os.makedirs(join(".", folder), exist_ok=True)
|
os.makedirs(join(rootdir, folder), exist_ok=True)
|
||||||
print(f"Folder {folder} created if needed")
|
print(f"Folder {rootdir}{folder} created if needed")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -61,37 +68,37 @@ def main():
|
|||||||
print(f"{f} => {size}")
|
print(f"{f} => {size}")
|
||||||
#Check landscape first
|
#Check landscape first
|
||||||
if size == res4k or size == reslow4k:
|
if size == res4k or size == reslow4k:
|
||||||
file_move(f_path, join(folder4k, f))
|
file_move(f_path, join(rootdir, folder4k, f))
|
||||||
dest_folder = folder4k
|
dest_folder = folder4k
|
||||||
elif size == res2k:
|
elif size == res2k:
|
||||||
file_move(f_path, join(folder2k, f))
|
file_move(f_path, join(rootdir, folder2k, f))
|
||||||
dest_folder = folder2k
|
dest_folder = folder2k
|
||||||
elif size == reshd:
|
elif size == reshd:
|
||||||
file_move(f_path, join(folderhd, f))
|
file_move(f_path, join(rootdir, folderhd, f))
|
||||||
dest_folder = folderhd
|
dest_folder = folderhd
|
||||||
elif size == resuw:
|
elif size == resuw:
|
||||||
file_move(f_path, join(folderuw, f))
|
file_move(f_path, join(rootdir, folderuw, f))
|
||||||
dest_folder = folderuw
|
dest_folder = folderuw
|
||||||
|
|
||||||
#Check portrait by inverting sizes
|
#Check portrait by inverting sizes
|
||||||
elif rsize == res4k or rsize == reslow4k:
|
elif rsize == res4k or rsize == reslow4k:
|
||||||
file_move(f_path, join(vert4k, f))
|
file_move(f_path, join(rootdir, vert4k, f))
|
||||||
dest_folder = vert4k
|
dest_folder = vert4k
|
||||||
elif rsize == res2k[::-1]:
|
elif rsize == res2k[::-1]:
|
||||||
file_move(f_path, join(vert2k, f))
|
file_move(f_path, join(rootdir, vert2k, f))
|
||||||
dest_folder = vert2k
|
dest_folder = vert2k
|
||||||
elif rsize == reshd[::-1]:
|
elif rsize == reshd[::-1]:
|
||||||
file_move(f_path, join(verthd, f))
|
file_move(f_path, join(rootdir, verthd, f))
|
||||||
dest_folder = verthd
|
dest_folder = verthd
|
||||||
elif rsize == resuw[::-1]:
|
elif rsize == resuw[::-1]:
|
||||||
file_move(f_path, join(vertuw, f))
|
file_move(f_path, join(rootdir, vertuw, f))
|
||||||
dest_folder = vertuw
|
dest_folder = vertuw
|
||||||
|
|
||||||
#...Or put in "SD" folder
|
#...Or put in "SD" folder
|
||||||
else:
|
else:
|
||||||
file_move(f_path, join(foldersd, f))
|
file_move(f_path, join(rootdir, foldersd, f))
|
||||||
dest_folder = foldersd
|
dest_folder = foldersd
|
||||||
print(f"{f} moved to {dest_folder}")
|
print(f"{f} moved to {rootdir}{dest_folder}")
|
||||||
|
|
||||||
print("Done, Sayonara")
|
print("Done, Sayonara")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user