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)