Pliki o danym rozszerzeniu w folderze (bez podfolderów)
Treść zadania
Wczytaj ścieżkę folderu i rozszerzenie (np. .txt). Wypisz nazwy wszystkich plików o tym rozszerzeniu, które leżą bezpośrednio w tym folderze. Nie zaglądaj do podfolderów. Foldery pomijaj, nawet jeśli ich nazwa wygląda jak nazwa pliku (np. folder stare.txt).
Rozszerzenia porównuj bez względu na wielkość liter, ale nazwy wypisuj dokładnie tak, jak są zapisane.
Dane wejściowe
- 1. linia: ścieżka folderu
- 2. linia: rozszerzenie z kropką, np.
.txt
Dane wyjściowe
- Nazwy pasujących plików (same nazwy, bez ścieżki folderu), każda w osobnej linii, posortowane rosnąco.
Brak plików.— jeśli w folderze nie ma żadnego pasującego pliku.Folder nie istnieje.— jeśli podana ścieżka nie wskazuje istniejącego folderu.
Uwagi
- Zawartość folderu zwraca
os.listdir()alboPath.iterdir(). Rozszerzenie pliku podaos.path.splitext()alboPath.suffix.
Przykłady
dokumenty/lista zakupów.txtmleko chleb
dokumenty/notatki.TXTZadzwonić do Ani.
dokumenty/stare/archiwum.txtdokumenty/zdjęcie.png
dokumenty .txt
lista zakupów.txt notatki.TXT
Plik stare/archiwum.txt leży w podfolderze, więc go pomijamy.
(pusty katalog)
zdjecia .png
Folder nie istnieje.
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 20
Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin), wykonywaniu operacji na plikach i folderach oraz wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie jest osobnym, niezależnym programem.
Konwencje wspólne:
- Program działa na plikach w katalogu roboczym, czyli w folderze, w którym jest uruchamiany. Wszystkie ścieżki na wejściu są względne wobec katalogu roboczego i używają
/jako separatora, np.dane/raport.txt. Ścieżki wczytuj jako całe linie — mogą zawierać spacje. - Sprawdzarka przed każdym testem tworzy nowy katalog roboczy z plikami opisanymi w teście, uruchamia program, a potem sprawdza zarówno wypisany tekst, jak i zawartość plików.
- W przykładach Pliki przed: pokazuje zawartość katalogu roboczego przed uruchomieniem programu, a Pliki po: — stan wybranych plików po jego zakończeniu. Każda linia to ścieżka pliku, a linie zaczynające się od
|to kolejne wiersze jego treści. Ścieżka zakończona/to pusty folder,(rozmiar: N B)oznacza plik o rozmiarze N bajtów, a(usunięty)— plik, którego po zakończeniu programu ma już nie być. - Pliki tekstowe są zapisane w kodowaniu UTF-8 — otwieraj je przez
open(sciezka, encoding="utf-8"). - Rozszerzenie to końcówka nazwy pliku od ostatniej kropki (razem z nią), np.
archiwum.tar.gzma rozszerzenie.gz. Rozszerzenia porównuj bez względu na wielkość liter (.TXTto też.txt). - Listy plików wypisuj po jednym w linii, jako ścieżki względem podanego folderu z separatorem
/(np.2024/raport.txt), posortowane rosnąco tak, jak sortuje napisy funkcjasorted(). Na Windowsie ścieżki mają separator\— zamień go na/(np. metodąPath.as_posix()). - Komunikaty dla przypadków brzegowych wypisuj dokładnie w podanej postaci, np.
Folder nie istnieje.,Plik nie istnieje.,Brak plików. - Program nie wypisuje komunikatów typu „Podaj ścieżkę:”. Tekst podany w
input("…")jest ignorowany przez sprawdzarkę.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomionoraporty .txt
q1.txt q2.txt
raporty/2023/q4.txtd
raporty/q1.txtb
raporty/q2.txta
raporty/wykres.pngc
Test 2
Nie uruchomionodane .txt
RAPORT.TXT a.Txt d.txt
dane/RAPORT.TXT1
dane/a.Txt2
dane/b.txt.bak3
dane/c.csv4
dane/d.txt5
Test 3
Nie uruchomionoprojekt .py
main.py utils.py
projekt/main.pyprojekt/modul.py/__init__.pyprojekt/test.pycprojekt/utils.py
Test 4
Nie uruchomionoa/b .md
c.md d.md f.MD
a/b/c.mda/b/d.mda/b/f.MDa/e.md
Test 5
Nie uruchomionomoje pliki .jpg
zdjęcie 1.jpg zdjęcie 2.JPG
moje pliki/film.mp4moje pliki/zdjęcie 1.jpgmoje pliki/zdjęcie 2.JPG
Test 6
Nie uruchomionopuste .txt
Brak plików.
puste/
Test 7
Nie uruchomionodane .txt
Brak plików.
dane/a.csvx
dane/b.txt/c.csvy
Test 8
Nie uruchomionodokumenty .txt
Folder nie istnieje.
dane/a.txtx
Test 9
Nie uruchomionoraport.txt .txt
Folder nie istnieje.
raport.txtx