Zadanie 1.1 omówienie rozwiązania - WykopWyzwanie/wykop_wyzwaniepython GitHub Wiki

##Zadanie 1.1

Link do rozwiązania

Do rozwiązania potrzebne będą 4 biblioteki - os, shutil, time oraz argparse.

import os
import shutil
import time
from argparse import ArgumentParser

-- Całe rozwiązanie podzielone jest na 2 funkcje. Pierwsza, get_year_and_month_of_modification, zwraca rok i miesiąc ostatniej modyfikacji dla pliku o ścieżce podanej jako argument.

Funkcja main odpowiada za całą logikę programu. Dla każdego pliku w podanym katalogu wykonuje ona następujące kroki: pobranie roku i miesiąca modyfikacji, (jeśli potrzebne) utworzenie katalogu docelowego, przeniesienie pliku do katalogu docelowego.

def get_year_and_month_of_modification(file):
    modtime = time.localtime(os.path.getmtime(file))
    return modtime.tm_year, '0{}'.format(modtime.tm_mon)[-2:]


def main(directory):
    os.chdir(directory)
    for file in os.listdir('.'):
        year, month = get_year_and_month_of_modification(file)
        destination_dir = '{}/{}'.format(year, month)
        os.makedirs(destination_dir, exist_ok=True)
        shutil.move(file, destination_dir)

-- Na koniec fragment odpowiedzialny za pobranie argumentów z linii poleceń i wywołanie funkcji main.

if __name__ == '__main__':
    parser = ArgumentParser('Move files to directories based on modification date.')
    parser.add_argument('operating_dir', metavar='operating_dir', type=str)

    main(parser.parse_args().operating_dir)