Giter Club home page Giter Club logo

goit_homeworks_6_zadanie_domowe's Introduction

GoIT_homeworks_6_zadanie_domowe

Zadanie

Wielu z nas na pulpicie ma folder o nazwie “Do przejrzenia”, do którego wrzucamy na bieżąco randomowe rzeczy, ale nigdy nie mamy czasu, aby w końcu ten folder “przejrzeć” i zrobić porządek.

Napiszemy skrypt, który wreszcie zrobi porządek w tym folderze. Ostatecznie będziesz mógł dostosować ten program do swoich potrzeb tak, aby realizował indywidualny scenariusz odpowiadający Twoim wymaganiom. W tym celu nasza aplikacja będzie sprawdzać rozszerzenie pliku (ostatnie znaki w nazwie pliku, zwykle po kropce) i na podstawie rozszerzenia podejmować decyzję, do jakiej kategorii należy ten plik.

Przy uruchomieniu skrypt przyjmuje jeden argument - jest to nazwa folderu, w którym będzie przeprowadzał sortowanie. Przyjmując, że plik z programem nazywa się sort.py, aby posortować folder /user/Desktop/Bałagan, należy uruchomić skrypt za pomocą polecenia python sort.py /user/Desktop/Bałagan.

  • Stworzenie osobnej funkcji do przetwarzania folderu na pewno ułatwi Ci pomyślne wykonanie tego zadania.
  • Funkcja przetwarzania folderów powinna rekurencyjnie wywoływać samą siebie, gdy napotyka zagnieżdżone foldery, aby program obejmował wszystkie poziomy katalogów.

Skrypt powinien przejść do podanego podczas uruchomienia folderu i posortować wszystkie pliki według rodzajów:

  • obrazy ('JPEG', 'PNG', 'JPG', 'SVG');
  • pliki wideo ('AVI', 'MP4', 'MOV', 'MKV');
  • dokumenty ('DOC', 'DOCX', 'TXT', 'PDF', 'XLSX', 'PPTX');
  • muzyka ('MP3', 'OGG', 'WAV', 'AMR');
  • archiwa ('ZIP', 'GZ', 'TAR');
  • nieznane rozszerzenia.

Możesz powiększyć i uzupełnić tę listę według własnego uznania.

W wynikach pracy powinny się znaleźć:

  • Lista plików w każdej kategorii (muzyka, wideo, zdjęcia itp.)
  • Wykaz wszystkich znanych rozszerzeń plików, które występują w folderze docelowym.
  • Wykaz wszystkich rozszerzeń plików, które pozostały nierozpoznane przez skrypt.

Następnie należy dodać funkcje odpowiedzialne za przetwarzanie każdego rodzaju plików.

Dodatkowo należy zmienić nazwy wszystkich plików i folderów, usuwając wszystkie znaki, które mogą powodować problemy. W tym celu do nazw plików możesz zastosować funkcję normalize. Pamiętaj jednak, że zmienianie nazw plików nie powinno mieć wpływu na rozszerzenia.

Funkcja normalize:

  1. Zmienia polskie litery na zwyczajne znaki (na przykład, ą, ę, ż i td.)
  2. Zamienia wszystkie litery, oprócz zwyczajnych znaków i cyfr, na znak '_'.

Wymagania dotyczące funkcji normalize:

  • przyjmuje ciąg znaków jako argument wejściowy i zwraca ciąg znaków;
  • wykonuje transliterację polskich liter zwyczajnymi znakami.
  • zamienia wszystkie litery, oprócz zwyczajnych znaków i cyfr, na znak '_'.
  • transliteracja może nie być zgodna ze standardem, ale powinna być czytelna;
  • pozostaje zachowana wielkość liter (wielkie litery pozostają wielkimi i podobnie w przypadku małych liter) po transliteracji.

Instrukcje dotyczące sortowania plików:

  • obrazy → folder images
  • dokumenty → folder documents
  • pliki audio → folder audio
  • pliki wideo → folder video
  • zawartość archiwów po rozpakowaniu → folder archives

Kryteria akceptacji pracy domowej

  • nazwy wszystkich plików i folderów są zmieniane przy użyciu funkcji normalize;
  • po zmianie nazw plików rozszerzenia pozostają bez zmiany;
  • puste foldery są usuwane;
  • skrypt “ignoruje” foldery archives, video, audio, documents, images;
  • zawartość rozpakowanego archiwum jest przenoszona do podfolderu o takiej samej nazwie (ale bez rozszerzenia na końcu) w folderze archives;
  • pliki o nieznanych rozszerzeniach pozostają bez zmiany.

goit_homeworks_6_zadanie_domowe's People

Contributors

szumapman avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.