redz kur pilnībā strādājošs risinājums:
Code:
import glob
import os
import time
import shutil
from pathlib import Path
def format_stamp(fmt, stamp):
return time.strftime(fmt, time.localtime(stamp))
root_dir = "/Users/user/Desktop/" # source folder
sorted_dir = "/Users/user/Desktop/archive/" # sorted folder
for filename in glob.iglob(root_dir + '**/*.pdf', recursive=True):
time_created = os.path.getctime(filename) # raw timestamp
txt_date_created = format_stamp("%Y%m%d", time_created)
txt_time_created = format_stamp("%H%M", time_created)
extension = Path(filename).suffix
# ensure folder created
target_dir = os.path.normpath(sorted_dir+os.sep+txt_date_created)
Path(target_dir).mkdir(parents=True, exist_ok=True) # make folder if not exists
# copy file to target folder
try:
shutil.copy2(filename, target_dir + os.sep + txt_time_created + extension)
except shutil.SameFileError:
print("File already exists, skipping..")
print(f"[{txt_date_created}{os.sep}{txt_time_created}{extension}] created from [{filename}]")
Es darītu tā, ka uzinstalētu Python no
https://www.python.org/downloads/ , saglabātu šo failu kā "backup.py" , norādītu pareizos folderus un paplašinājumus (šobrīd PDF meklē) un izpildītu ar Python (dubultklikšķis). Ja viss labi strādā - ieliktu šedulerī.
Pirms padsmit gadiem esmu taisījis utilītu, kas monitorē folderi un momentā pārkopē, bet nu tas ir overkills.
Powershell arī tieši šo pašu var uztaisīt - gan ar WMI, gan šādu brutālu folderu apstaigāšanu, un tam nevajadzētu instalēt papildus runtime. Cits jautājums, vai kāds rakstīs.
rezultātā uztaisās folderi ar attiecīgās dienas failiem iekšā:
Code:
.
├── 20210625
│ └── 2254.pdf
├── 20210715
│ └── 1811.pdf
├── 20210716
│ └── 2137.pdf
├── 20210831
│ └── 0923.pdf
..
├── 20221004
│ └── 1927.pdf
└── 20221025
├── 1857.pdf
├── 1858.pdf
├── 1859.pdf
├── 1900.pdf
└── 1901.pdf