Programming4Fun

Programming4Fun - programujemy z pasją :)

  • Nie jesteś zalogowany.

Ogłoszenie


#1 2014-07-10 22:36:33

 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ęść 12.

ŹRÓDŁO : http://szgrabowski.kis.p.lodz.pl/Python-podstawy.html
Mam dla was dobrą wiadomość . To już przed ostatnia część kursu o Pythonie.Jeśli dotrwałeś aż tutaj to brawo !
Pliki.
Pamięć RAM jest ulotna; żeby przechowywać dane w sposób trwały, należy wykorzystać pamięć dyskową (albo np. Flash).  Typowym trwałym „pojemnikiem” na dane w pamięci zewnętrznej jest plik.  Parę przykładów.

Kod:

 

f = open("c:/topsecret/mypassword.txt", "rt")

text = f.read()

Zmienna text przechowuje zawartość wskazanego pliku, jako napis (string).  Co więcej, gdyby f został otwarty w trybie binarnym (‘b’ zamiast ‘t’), to też funkcja read() zwróciłaby string.



Obiekty plikowe mają 3 atrybuty, których znaczenia domyślisz się po przykładzie:

Kod:

print f.name, f.mode, f.closed

Wykonaj teraz operację f.close() i wyświetl atrybut closed tego pliku.



Jeżeli chcemy plik „na raz” wczytać do pamięci (żeby analizować jego zawartość, natomiast pliku nie zmieniać), nie trzeba nawet tworzyć zmiennej plikowej.  Ściągnij książkę „Oliver Twist” Dickensa spod http://www.gutenberg.org/etext/730 (w formacie txt, tj. „plain text”) i zachowaj np. w katalogu głównym dysku C.  Następnie wykonaj:

Kod:

words = open("c:/730.txt").read().split()

print words[:30]

words.count("Oliver")

words.count("Twist")

Jak widzisz, wszystkie słowa książki „siedzą” na liście words i możemy prosto np. policzyć, ile razy w tekście występuje imię oraz nazwisko tytułowego bohatera.  A może chcemy znać pozycje słowa „Twist” na liście słów?  Oto kod:

Kod:

 

for j, i in enumerate(words):

          if i == "Twist":

print j,

Funkcja enumerate(lista), formalnie rzecz biorąc, zwraca obiekt enumeracji (wyliczenia), ale możemy o tym na razie zapomnieć.  Jej użycie sprowadza się do odczytania bieżącego elementu listy wraz z indeksem.  Sprawdź na mniejszym przykładzie:

Kod:

li = [3, -5, "abc", 10]

for j, in in enumerate(li):

          print i, j

Wypróbuj też: list(enumerate(li)).



Ile różnych słów jest w naszym pliku?  Nie musimy go ponownie czytać, bo przecież nie zmienialiśmy listy words.  Piszemy po prostu:

Kod:

print len(set(words)).

Nieraz wygodniej jest działać na poziomie całych wierszy.  W takim przypadku użyjmy metody readlines().  Wczytajmy jeszcze raz cały plik, tym razem do listy wierszy i wypiszmy na ekran wiersze od 100-go do 120-ego.  Żeby układ tekstu był „ładny” (wiersz w jednej linii), użyj pętli for oraz print w jej wnętrzu.  A może widzisz co drugą linię pustą?  Co zrobiłeś źle?  Popatrz na linię print-a.



Zapis do pliku to oczywiście metoda write (argumentem jest string).

Kod:

g = open("c:/output.txt", "w")

g.write("Oto kilka początkowych liczb pierwszych:\n")

for i in [2, 3, 5, 7, 11]:

  g.write(str(i)+" ")

g.close()

Można też jednym wywołaniem metody writelines zapisać do pliku listę stringów:

Kod:

lista = ["napis1 ", "napis 2 ", "napis 3 "]

g.writelines(lista)

25.Wypisz 10 pierwszych linii danego pliku tekstowego – wspak.

26.Wypisz 10 najczęstszych słów w pliku tekstowym (np. „Oliverze Twiście”) wraz z liczbą wystąpień.  Wskazówka: użyj słownika.

27.Wypisz na ekran tylko te linie pliku tekstowego, które zawierają przynajmniej 10 liter ‘a’ (dla O.T. jest takich linii 7, pierwsza to „him a thousand embraces, and what Oliver wanted a great deal more, a”).  W zasadzie możesz to zrobić w jednej linii (wskazówka: filter).

28.Zapisz do pliku tekstowego tabliczkę mnożenia 10 x 10 (p. zadanie 3), zadbaj o wyrównanie liczb (metoda rjust dla stringów).


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

[ Generated in 0.263 seconds, 8 queries executed ]


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.sgaming.pun.pl www.chomiki-pbf.pun.pl www.akatsukifreinds.pun.pl www.djronnie.pun.pl www.chemiaumcs.pun.pl