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



Podobne dokumenty
Zaawansowany kurs języka Python

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

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

Biblioteka standardowa - operacje wejścia/wyjścia

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h >

Kier. MTR Programowanie w MATLABie Laboratorium

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

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Programowanie w językach

Programowanie i struktury danych

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

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

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

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

Podstawy programowania w języku C++

MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw

SZKOLENIE WPROWADZENIE DO R UNIWERSYTET SZCZECIŃSKI al. Papieża Jana Pawła II nr 22a Szczecin

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Pliki wykład 2. Dorota Pylak

Zaawansowany kurs języka Python

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

Podstawy programowania w języku C++

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Wykład 4. Tablice. Pliki

Uniwersalny Import/Aktualizacja Towarów do Subiekt GT Sfera

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

Strumienie i pliki. Programowanie Proceduralne 1

Języki programowania imperatywnego

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Python. Wprowadzenie. Jolanta Bachan

Opis spełnienia wymagań (PSBD)

Zanim zaczniemy GNU Octave

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

Import danych z plików CSV

C++ - [3-5] Pliki i strumienie w C++

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

Kurs rozszerzony języka Python

Programowanie Procedurale. Pliki w języku C++

Python! Lekcja 1 podstawy języka, typy danych

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h>

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

external Data Representation

Języki programowania. Tablice struktur, pliki struktur. Część ósma. Autorzy Tomasz Xięski Roman Simiński

Strumienie i serializacja

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

Programowanie w językach wysokiego poziomu

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

Wskaźniki do funkcji. Wykład 11. Podstawy programowania ( język C ) Wskaźniki do funkcji (1) Wskaźniki do funkcji (2)

Zaawansowany kurs języka Python

Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście.

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Tunelowanie, kapsułkowanie, XDR. 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR.

Informatyzacja Przedsiębiorstw

Pliki wykład 2. Dorota Pylak

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Programowanie obiektowe

Podstawy i języki programowania

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

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

Podstawowe części projektu w Javie

Pliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string)

Instrukcje DML INSERT, UPDATE, DELETE. COPY

Microsoft IT Academy kurs programowania

Przekierowanie wejścia wyjścia:

W języku C każdy plik fizyczny jest ciągiem bajtów, z których każdy może być niezależnie odczytany. Borland 01234

Zaawansowany kurs języka Python

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

dr inż. Jarosław Forenc

Programowanie w Ruby

Języki skryptowe w programie Plans

Podstawy Programowania C++

Podstawy. Jan Koprowski Politechnika Gdańska, FTiMS Informatyka Stosowana

Programowanie w Ruby

Przed zaimportowaniem danych należy odpowiednio skonfigurować sposób interpretacji danych z zakładki [Ustawienie pliku importu]

Struktura pliku wejściowego ipko biznes VideoTEL (14 polowy)

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Oczywiście plik musi mieć rozszerzenie *.php

Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016

Programowanie, algorytmy i struktury danych

Wykład 6 Dziedziczenie cd., pliki

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Biuletyn techniczny. Funkcje dodatkowe dla Clarion Report Writer CDN OPT!MA Copyright 2006 COMARCH S.A.

Standard pliku importu danych pracowników i firm do programu e-pity (od wersji e-pity 3.0)

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

Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF.

Pliki wykład. Dorota Pylak

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Strumienie, pliki. Sortowanie. Wyjątki.

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

PLAN WYKŁADU BAZY DANYCH HIERARCHIA MECHANIZMÓW SKŁADOWANIA PRZECHOWYWANIA BAZ DANYCH

Plan podstawowe operacje we/wy

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Internet korporacyjny

Transkrypt:

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

Operacje na plikach Otwarcie i zamknięcie pliku: fh = open('plik', 'r') Atrybuty: 'r' odczyt 'w' zapis 'a' dopisanie 'r+' - odczyt i zapis 'rb', 'wb', 'ab' odczyt i zapis binarny (tylko Windows i Macintosh)

fh.close() Zamknięcie pliku

Odczyt pliku fh.read() - odczyt całego pliku fh.read(size) - odczyt tylko size znaków, gdy koniec pliku zwracane jest fh.readline() - zwraca wiersz, razem z '\n' fh.readlines() - zwraca listę wierszy

Odczyt z pliku przykład fh = open('test.py', 'r') while True: wiersz = fh.readline() if len(wiersz) == 0: break print wiersz, fh.close()

Odczyt z pliku przykład poprawiony fh = open('test.py', 'r') for wiersz in fh: print wiersz,

Zapis do pliku fh.write('dane zapisywane do pliku\n') fh.writelines(['to\n', 'są\n', 'kolejne\n', 'wiersze\n'])

Rodzaje danych w plikach Pliki tekstowe Pliki z rekordami Pliki CVS Pliki *.ini XML...

Przetwarzanie rekordów PLIK Rekord 0 Rekord 1 Rekord 2 Rekord 3 REKORD int char[16] char[40] bool float data

Konwersja string <-- rekord import struct numrec, lenheader = struct.unpack('<xxxxlh22x', f.read(32)) name, typ, size, deci = struct.unpack('<11sc4xbb14x', rec)

Konwersja string --> rekord hdr = struct.pack('<bbbblhh20x', ver, yr, mon, day, numrec, lenheader, lenrecord)

Pack i unpack: formatowanie <liczba> - powtórzenie 'x' nieistotny bajt, np. '4x' == 'xxxx' 'c' znak 'i' int 's', 'p' stringi Dodatkowe znaki: '<' - little endian '>' - big endian

Pakiet dbf Zastosowanie

Przechowywanie obiektów w pliku import pickle fh = open('plik.obj', 'w') pickle.dump(obj, fh) fh.close()

Odczyt obiektu z pliku import pickle fh = open('plik.obj', 'r') obj = pickle.load(fh) fh.close()

Odczyt ze standardowego wejścia x = raw_input('podaj jakiekolwiek dane: ') Wczytanie i obliczenie x = input('podaj wyrażenie') print x

Bardziej zaawansowana interakcja Pakiet readline: Odczyt i zapis historii Uzupełnianie

Pliki *.ini Plik.gnome2/gedit-2: [window] height=487 width=601 state=0 [time_plugin] prompt_type=1

Odczyt pliku ini import ConfigParser ini = ConfigParser.ConfigParser() print ini.sections() print ini.getint('window', 'height') print ini.items('window')

Zmiany Modyfikacja parametrów: ini.set('window', 'height', 100) Usuwanie: ini.remove_option('window', 'height') ini.remove_section('window')

Zapis konfiguracji fh = open('konfig.ini', 'w') ini.write(fh) fh.close()

Pliki CSV CSV Comma Separated Values Dane imie1, nazwisko1, 2000-01-01, 3 imie2, nazw3, 2006-04-01, 2 Notowania giełdowe 2006-04-26;1415.79;183.29;102.14; 2006-04-25;1415.88;183.43;102.31;

Parametry formatu delimiter separator, np. ',' ';' ':' lineterminator koniec wiersza quotechar znak cudzysłowu quoting kiedy ujmować pola w cudzysłów, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE

CSV - dialekty Dialekt: domyślne parametry, np. dialekt excel Możliwość dodania własnego dialektu

Odczyt CSV -przykład import csv reader = csv.reader( open('/etc/passwd', 'r'), delimiter=':', quoting=csv.quote_none) for row in reader: print row

Zapis w formacie CSV przykład import csv data = [ [1, 'Oskar'], [2, 'Mis'] ] writer = csv.writer( open('out', "w"), dialect=csv.excel) writer.writerows(data)

CSV - słowniki Data;FS;FO;FOE;FSW;FZ;FPA;FRP;FANE; 2006-05-05;1416.17;183.01;101.80;123.63; 2006-05-04;1416.03;183.11;101.95;123.48; 2006-05-02;1415.79;183.06;101.93;123.43;

CSV słowniki - przykład fh = open('notowania.csv', "r") reader = csv.dictreader(fh, delimiter=';') for row in reader: for k in row.keys(): print k, row[k]

CSV - słowniki Własne klucze: fh = open('notowania.csv', "r") klucze = ['lp', 'name'] reader = csv.dictreader(fh, fieldnames= klucze) for row in reader: print row['lp'], row['name']

Strumienie - motywacje def przegladaj_notowania(zrodlo): reader = csv.dictreader(zrodlo, delimiter=';') for row in reader: for k in row.keys(): print k, row[k]

Strumienie - motywacje przegladaj_notowania('dane.csv') url = 'http://www.notowania.pl/dane.csv' przegladaj_notowania(url)

Strumienie danych Plik dyskowy Sieć Zmienna typu string...

Implementacja metod: read() read(size) Własności strumieni

Przykład def przegladaj_notowania(zrodlo): reader = csv.dictreader(zrodlo, delimiter=';') for row in reader: for k in row.keys(): print k, row[k]

Plik dyskowy jako strumień in_stream = open('dane.csv', 'r') przegladaj_notowania(in_stream) in_stream.close()

Strumień danych - URL import urllib url = 'http://www.notowania.pl/dane.csv' in_stream = urllib.urlopen(url) przegladaj_notowania(in_stream) in_stream.close()

String jako strumień Str = '2006-11-13;12.45;45.78' import StringIO in_stream = StringIO.StringIO(str) przegladaj_notowania(in_stream) in_stream.close()

Na koniec