Programming4Fun

Programming4Fun - programujemy z pasją :)

Ogłoszenie


#1 2014-07-10 22:45:58

 Hoguzzos

http://winclub.pl/public/style_extra/team_icons/mod.png

Skąd: Za górami za lasami :D
Zarejestrowany: 2014-07-09
Posty: 56
Punktów :   

Kurs Pythona. Część 13.

ŹRÓDŁO : http://szgrabowski.kis.p.lodz.pl/Python-podstawy.html
No i stało sie,ostatna część kursu . Zaszczytem było dla mnie udostępnić wam ten poradnik.Mam nadzieje że docenicie mój wkład w ten projekt(czyli przystosowanie tego poradnika do forum ).
[size=16]Wykorzystanie systemu operacyjnego.

Nieraz (np. w praktyce administratora systemu sieciowego) zachodzi potrzeba wyszukania plików o określonych nazwach czy atrybutach, skasowania za pomocą skryptu jakichś plików, zsumowania miejsca dyskowego zajmowanego przez dane drzewo katalogów etc.  Biblioteka standardowa Pythona zawiera narzędzia umożliwiające wykonywanie tego typu działań, bez względu na używany system operacyjny.



Zaimportujmy na początek moduł os:

Kod:

import os

Mamy tam m.in. funkcje:

Kod:

getcwd() – zwraca (jako string) bieżący katalog

 

chdir(nowy_katalog) – nietrudno odgadnąć...  Wypróbuj z podawaniem ścieżki względnej i bezwzględnej

 

mkdir(nowy_katalog) – tworzy katalog

 

listdir(katalog), np. listdir("."), czyli zawartość katalogu bieżącego, jako lista stringów

Użycie ostatniej z ww. funkcji jest szczególnie wygodne, jeśli możemy odfiltrować nazwy plików.  Można do tego użyć standardowych funkcji dla stringów albo wyrażeń regularnych, ale w typowych zastosowaniach zwykle wygodniejszy jest moduł fnmatch („fn” niech się kojarzy z „filename”):

Kod:

 

import fnmatch

print fnmatch.fnmatch("song01.mp3", "*.mp3")  # (sciezka / nazwa pliku, wzorzec)

Wypisuje True.



Można użyć też klas znaków, np.

Kod:

print fnmatch.fnmatch("song01.mp3", "*[023].mp3")

Teraz False.



Napisz skrypt (może być 1 linia) wypisujący wszystkie pliki z katalogu Lib zainstalowanego Pythona o nazwach zaczynających się na ‘s’ i rozszerzeniu .py.



Mamy też do dyspozycji moduł os.path, który może wyglądać na „podmoduł” modułu os, ale naprawdę jest referencją do osobnego modułu zależnego od platformy, jakiej używamy (np. w systemach Windows jest to moduł ntpath, ale zaleca się importowanie os.path, ze względu na przenośność kodu).



Dużo rzeczy jest w os.path, np.:

Kod:

os.path.split("c:/Python26/Lib/compiler")

os.path.exists("c:/Python26/Lib/1")

os.path.isfile("c:/Python26/Lib")  # zwróci False

os.path.isdir("c:/Python26/Lib")  # zwróci True

os.path.getsize("c:/Python26/Lib/atexit.py")  # rozmiar w bajtach, np. 1770L

os.path.getsize("c:/Python26/Lib")  # dla katalogów getsize zwraca 0

29.Napisz program, który zsumuje wielkość wszystkich plików w zadanym katalogu, przy czym nie dbaj o ewent. podkatalogi.  Uwaga: nie uwzględniaj wielkości klastra.

30.J.w., ale tym razem uwzględnij strukturę drzewiastą katalogu (jego podkatalogi też mogą mieć podkatalogi etc., więc narzuca się podejście rekurencyjne).

31.Znajdź najdłuższy plik w danym katalogu (z uwzględnieniem ewent. podkatalogów).

32.Zwróć liczbę unikalnych nazw plików (podkatalogów nie traktujemy jak pliki) w danym drzewie katalogów (oczywiście nazwy wraz ze ścieżką są unikalne, ale same nazwy plików niekoniecznie, np. readme.txt może występować wielokrotnie, w różnych podkatalogach).


   Poprawiłem błędy ortograficzne - Arnon


http://img208.imageshack.us/img208/623/mnd1.jpg
http://images.cooltext.com/3860851.png

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.biotechnologia-kul.pun.pl www.tophax.pun.pl www.gangsterlife.pun.pl www.team-carpselectioner.pun.pl www.fani-fantastyki.pun.pl