Informatyka 2015/16 wykład 9. Pliki Sterowanie przebiegiem programu cz. 2. Dr inż. Witold Nocoń (p. 230)

Podobne dokumenty
Programowanie w językach

Podstawy i języki programowania

Programowanie w Sieci Internet. Python: Operacje z plikami oraz obsługa wyjątków

Pliki. Operacje na plikach w Pascalu

Zaawansowane techniki programowania C#

System plików warstwa logiczna

Zaawansowany kurs języka Python

Strumienie, pliki. Sortowanie. Wyjątki.

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Strumienie, pliki. Sortowanie. Wyjątki.

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Wykład 4. Tablice. Pliki

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie

Języki programowania imperatywnego

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()

Wykład PASCAL - Pliki tekstowe

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

Funkcje zawarte w bibliotece < io.h >

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Funkcje zawarte w bibliotece < io.h >

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Ćwiczenie 1. Wprowadzenie do programu Octave

program TRX

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

Delphi Laboratorium 3

Wstęp do Informatyki dla bioinformatyków

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Podstawy bioinformatyki 2017/18

Cw.12 JAVAScript w dokumentach HTML

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE

1 Przygotował: mgr inż. Maciej Lasota

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

Kolejki FIFO (łącza nazwane)

Biblioteka standardowa - operacje wejścia/wyjścia

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Język Python (2) Język Python (2) 1/36

Pliki wykład 2. Dorota Pylak

Ćwiczenie 1. Wprowadzenie do programu Octave

Programowanie w języku Python. Grażyna Koba

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Zasady programowania Dokumentacja

Pisząc kod w Pythonie na pewno już nie raz coś poszło nie tak i Shell wypisał komunikat o błędzie podobny do poniższego:

Programowanie 3 - Funkcje, pliki i klasy

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Programowanie i struktury danych

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w językach wysokiego poziomu

Pliki. Informacje ogólne. Obsługa plików w języku C

Smarty PHP. Leksykon kieszonkowy

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Liczby losowe i pętla while w języku Python

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

JAVA?? to proste!! Autor: wojtekb111111

PHP: bloki kodu, tablice, obiekty i formularze

Programowanie w języku Java

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Podstawy programowania w Pythonie

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Zaawansowany kurs języka Python

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Język ludzki kod maszynowy

Programowanie robota mobilnego E-puck w języku Python

Język Python (3) Język Python (3) 1/35

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Podstawy programowania w Pythonie

Podstawy programowania w języku C i C++

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Pascal - wprowadzenie

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ ]

Wykład 2 Składnia języka C# (cz. 1)

VBA praca z makrami w Excelu

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Pliki. Informacje ogólne. Obsługa plików w języku C

Transkrypt:

Informatyka 2015/16 wykład 9 Pliki Sterowanie przebiegiem programu cz. 2 Dr inż. Witold Nocoń (p. 230)

Pliki Pliki dzielą się na dwa rodzaje: Pliki tekstowe (zawartość pliku jest typu string) Pliki binarne (zawartość pliku jest typu byte string nie są interpretowane żadne znaki np. \n. Plik zawiera surowe bajty (po 8 bitów)), np.: pickle, shelve Pliki graficzne itp.

Pliki Otwieranie plików, np.: mojplik = open(r'e:/nowy.txt','w') Obiekt pliku Ścieżka do pliku Tryb otwarcia Tekst ścieżki powinien być oznaczony jako raw string aby znaki ucieczki (np. \n) nie były interpretowane Podanie tylko nazwy pliku tworzy go w tym katalogu w którym jest zapisany skrypt

Pliki Tryby otwarcia pliku: w plik otwarty do zapisu (tworzony jest nowy plik, a stary (jeśli istniał) jest nadpisywany r plik otwarty do czytania a plik otwierany do zapisu bez kasowania (zapis nowych danych na koniec pliku) + - otwarcie zarówno do czytania jak i pisania: r+ - otwarcie istniejącego pliku z możliwością zapisu i odczytu w+ - otwarcie nowego pliku z możliwością zapisu i odczytu Dodatkowo: b otwarcie pliku w trybie binarnym

Pliki Zapis do pliku: mojplik.write( Tekst do zapisu\n ) Koniec linii nie jest automatycznie dodawany mojplik.writelines([ tekst1, tekst2 ])

Pliki Czytanie z pliku: s=mojplik.read() czyta cały plik s=mojplik.read(n) czyta N bajtów s=mojplik.readline() czyta do znaku \n s=mojplik.readlines() czyta cały plik i zwraca listę wierszy

Pliki Zamykanie plików: mojplik.close() W zasadzie zamykanie plików nie jest wymagany, gdyż obiekt pliku zostaje usunięty (a plik zamknięty) jeśli nie ma do niego referencji, ale należy zamykać pliki ręcznie wywołując metodą close() W innych językach może tak nie być, a niezamknięcie pliku może skutkować utrata danych Przyszłe/Inne implementacje Pythona mogą zachowywać się inaczej pod tym względem

Pliki Inne metody/atrybuty obiektu plików: mojplik.seek(n) ustawienie bieżącego miejsca w pliku na N-ty bajt, np.: mojplik.seek(0) przesunięcie bieżącego miejsca na początek pliku i umożliwienie czytania pliku od nowa mojplik.name nazwa pliku (pełna ścieżka dojościa) mojplik.readable() zwraca True albo False w zależności od tego czy z pliku można czytać mojplik.writeable() zwraca True albo False w zależności od tego czy do pliku można zapisywać

Czytanie z pliku p = open(r'e:/plik.txt','r') while True: w = p.readline() if w=='': break print(w,end='') p.close() Czytamy aż nie otrzymamy łańcucha pustego, który oznacza koniec pliku Najprostsze przeiterowanie całego pliku for line in open(r'e:/plik.txt','r'): print(line,end='') Plik jest automatycznie zamykany po zakończeniu pętli for

Buforowanie Zapis do pliku jest buforowany zapis danych do pliku za pomocą np. write() nie powoduje od razu zapisu na fizyczny dysk write() Zapis do bufora w pamięci Zapis całego bufora na dysk po zapełnieniu bufora

Buforowanie Metoda flush()powoduje zapis całej zawartości bufora na dysk fizyczny Przy otwarciu pliku można ustawić tryb buforowania: open( plik.txt, w,tryb) 0: bez buforowania (tylko pliki binarne) 1: buforowanie po linii (tylko pliki takstowe) >1: - używanie bufora o takiej (mniej więcej) wielkości -1: (wartość domyśla) użycie buforowania systemowego (zazwyczaj 4096 lub 8192 bajtów)

Wyjątki Wyjątki to inaczej błędy występujące w trakcie wykonania programu Jeżeli pojawia się wyjątek, wykonanie programu jest przerywane. Jeżeli wyjątek zdarzył się wewnątrz instrukcji try, to sprawdzane jest czy dana instrukcja przechwytuje dany wyjątek. Jeżeli bieżący try nie przechwytuje danego wyjątku, to sprawdzane są wszystkie zewnętrzne instrukcje try w których wystąpił wyjątek Jeżeli żadna instrukcja try nie przechwytuje wyjątku, program jest przerywany.

Wyjątki try/except try: /blok kodu chroniony except IndexError: print('poza zakresem') except (ZeroDivisionError, ValueError): print('dzielenie przez zero lub zła wartość') except: # jakikolwiek wyjątek (na końcu!) print('nieznany wyjątek')

Wyjątki try/except/else try: /blok kodu chroniony except IndexError: print('poza zakresem') except (ZeroDivisionError, ValueError): print('dzielenie przez zero lub zła wartość') except: # jakikolwiek wyjątek (na końcu!) print('nieznany wyjątek') else: /blok wykonywany gdy nie było żadnego wyjątku/

Wyjątki try/finally try: finally: /blok kodu chroniony / blok kody wykonywany zawsze, nawet jeśli pojawił się wyjątek/

Wyjątki try/except/else/finally try: /blok kodu chroniony except IndexError: except: else: finally: print('poza zakresem') # jakikolwiek wyjątek (na końcu!) print('nieznany wyjątek') /blok wykonywany gdy nie było żadnego wyjątku/ / blok kody wykonywany zawsze, nawet jeśli pojawił się wyjątek/

Moduł pickle Moduł implementuje binarny protokół serializacji i de-serializacji obiektów Pythona. Moduł nie jest bezpieczny: umożliwia niechciane wykonanie obcego kodu (dopóki nie otwieramy plików z nieznanych źródeł, to nic nie powinno się stać) Do jednego pliku możemy zapisać jeden obiekt Pythona (np. bibliotekę płyt z przykładu realizowanego na laboratorium)

Moduł pickle import pickle favorite_color = { "lion": "yellow", "kitty": "red" } pickle.dump( favorite_color, open( "save.p", "wb" ) ) import pickle favorite_color = pickle.load( open( "save.p", "rb" ) )

Moduł shelve Bazuje na module pickle Tworzy plik, który jest słownikiem import shelve d = shelve.open('sh.p') d['1']='jeden' d['2']='dwa' for k in d.keys(): print(k) d.close()