Sommario FONDAMENTI DI INFORMATICA. File e Python. Gestione di file. LINGUAGGIO Python Gestione dei file

Documenti analoghi
Sommario FONDAMENTI DI INFORMATICA. File e Python. Gestione di file. LINGUAGGIO Python Gestione dei file

Sommario FONDAMENTI DI INFORMATICA. File e Python. Gestione di file. LINGUAGGIO Python Gestione dei file

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Scrittura «formattata» in Python FONDAMENTI DI INFORMATICA. Lettura/scrittura su file formattato. Più valori in formattazione

Sommario FONDAMENTI DI INFORMATICA 1. Il tipo FILE. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file

Sommario ELEMENTI DI INFORMATICA. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file

Esercitazioni di Fondamenti di Informatica - Lez /12/2018

FONDAMENTI DI INFORMATICA

Esercizio n.1 FONDAMENTI DI INFORMATICA 1. Esercizio n.2. Soluzione. LINGUAGGIO C Funzioni e gestione file: esercitazione

FONDAMENTI DI INFORMATICA

Introduzione Il costrutto if: else: Il costrutto while: Il costrutto for: Sommario FONDAMENTI DI INFORMATICA. Avviso. Introduzione

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

Definizione FONDAMENTI DI INFORMATICA. Esempio di algoritmo: determinare il maggiore di due numeri interi x, y. Proprietà degli algoritmi

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018

Concetto di stream. c i a o \0. c i a o \0. c i a o \0

Sommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione

PROVA SCRITTA DEL CORSO DI. Dedurre la funzione semplificata dall osservazione della tabella o con le leggi dell algebra booleana.

FONDAMENTI DI INFORMATICA

Introduzione Il costruttoif: else: Il costruttowhile: Il costruttofor: Sommario FONDAMENTI DI INFORMATICA. Avviso. Introduzione

Definizione FONDAMENTI DI INFORMATICA. Proprietà degli algoritmi. Esempio di algoritmo: determinare il maggiore di due numeri interi x, y

Fondamenti di Informatica T-1

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Fondamenti di Informatica

FONDAMENTI DI INFORMATICA

I/O Avanzato in C: scheda riassuntiva

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Lezione 25: File Mercoledì 18 Novembre 2009

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Input/Output. Console e File.

Problemi, algoritmi e oggetti

Lezione 22: Input/Output e Files

file informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Esercitazioni Fondamenti di Informatica

Si può scrivere un programma anche utilizzando un editor di testo (Blocco Note, WordPad, ) ricordandosi comunque di salvarlo con l estensione.py.

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Matematica con Python

PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 9/6/2008

Introduzione Il costruttoif...else Il costruttowhile Altri costrutti Il costruttoswitch Il costruttofor Il costruttodo-while

Esercizio 1 (17 punti)

Fondamenti di Informatica L-A

Operazioni su file di caratteri

Comandi di Input/Output in Matlab

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

ESERCIZIO 1 (5 punti) Convertire in binario il valore, espresso in decimale, Si usi la rappresentazione in virgola fissa.

Fondamenti di Informatica

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

Ing. Lorenzo Vismara

Esercizio 1 (15 punti)

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

Lezione 11: Liste a Puntatori e Input/Output

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Strutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 18. Iterazione. Maggio Iterazione

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

ELEMENTI DI INFORMATICA

Introduzione Funzioni in Python Intestazione Variabili interne ed esterne Regole di visibilità Esercizi

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Realizzare un programma

Gestione dei File. Credits Prof. Campi

ELEMENTI DI INFORMATICA. Linguaggio C

Fondamenti di Programmazione

Informatica per Statistica Riassunto della lezione del 21/10/2011

- Esercitazione III Programmazione C Funzioni Alessandro Saetti

Settimana n.12. Obiettivi File!di!testo. Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e!

I/O e strutture di controllo

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C:

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA. INFORMATICA B Ingegneria Elettrica. I file in Matlab

FONDAMENTI DI INFORMATICA

La principale modalità di calcolo è l applicazione di funzioni

Laboratorio di informatica Ingegneria meccanica

Esercizio 1: media di numeri reali (uso funzioni e struct)

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Operatori di confronto (o relazionali)

Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!

Esercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010

Input/output in C e in C++

Informatica (A-K) 5. Algoritmi e pseudocodifica

ELEMENTI DI INFORMATICA E PROGRAMMAZIONE

Esercizi in Python. Docente: Domenico Daniele Bloisi

A. Ferrari. file. Python. Alberto Ferrari Informatica

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018

Laboratorio Programmazione Anno Lezione 3

Gestione dei file in C

INFORMATICA. I file. File. File. File

Mini-Corso di Informatica

Transcript:

Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica ed Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://people.unica.it/gianlucamarcialis A.A. 2018/2019 Docente: Gian Luca Marcialis Sommario Scrivere e leggere da qualunque I/O Il file visto da Python Apertura Scrittura e lettura Chiusura Esercizi LINGUAGGIO Python Gestione dei file Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 2 File e Python Gestione di file La maggior parte dei programmi non accettano dati da tastiera né scrivono il risultato sul monitor In generale avranno bisogno di recuperare i primi e depositare gli ultimi su file Motivazioni nell uso dei file: Quantità dei dati Maggiore velocità nell immissione e sicurezza nel salvataggio I dati su file possono essere usati più volte dallo stesso programma o da programmi diversi (v. Basi di Dati) fp = open(nomefile, Modalità_di_accesso) Apre la lavagna (stream) identificata danomefile (assegnando un valore a fp) NomeFile è una stringa con il nome del file. Es.NomeFile= pippo.txt Modalità è una stringa di uno o due caratteri: w se il file è aperto in scrittura r se è aperto in lettura a se è aperto in modalità append, ovvero si vogliono aggiungere ai contenuti presenti nuovi contenuti scritti in fondo al file fp.close() E il metodo (funzione «dedicata» agli identificatori di file) che chiude il file dopo che su esso sono state compiute le operazioni desiderate Un file va sempre chiuso al termine del suo utilizzo Se un file in scrittura non viene chiuso, nessuna modifica sarà salvata Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 3 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 4

Scrittura/lettura su file Data una stringa s ed un file f f.write(s) Scrive s sul file f s=f.readline() Legge una riga del file f e lo salva in s. Restituisce se il file è finito. Esempio: sia dato il file di testo sottostante 123 45 ciao Classe V 34.5 temperatura corporea Dopo aver aperto il file in lettura ed aver assegnatoftramiteopen, scrivendo: s=f.readline() s conterrà la stringa: 123 45 ciao Scrivendo un altra volta: s=f.readline() 1 Scrivere una programma Python che, leggendo da tastiera una stringa, la salvi su file «stringa.txt» Aprire il file «stringa.txt» e verificare il salvataggio stringa=raw_input( Immetti una stringa ) f=open( stringa.txt, w ) f.write(stringa) s conterrà la stringa: Classe V Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 5 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 6 2 Scrivere un programma che salva in un file «numeri.txt» l insieme dei numeri naturali da 0 ad un numero n letto da tastiera. I numeri salvati devono risultare su righe del file differenti. Esempio, se n=3, nel file deve risultare: 0 1 2 3 n=input( Immetti un numero naturale: ) f=open( numeri.txt, w ) i=0 while i<=n: f.write(str(i)+ \n )#per l a capo i=i+1 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 7 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 8

3 Aprite un file di testo, scriveteci a caso 10 numeri interi, uno per riga. Salvate il file con il nome «esercizio.txt» Scrivere un programma che legga i 10 numeri dal file appena salvato e li stampi in un unica riga sullo schermo filep=open( esercizio.txt, r ) s= for i in range(10): n=file.readline() s=s+n[0:len(n)-1]+ filep.close() print s #rimuovo il carattere a capo Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 9 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 10 La fine del file alternativa filep=open( esercizio.txt, r ) s= for i in range(10): n=file.readline() n=int(n) s=s+str(n)+ filep.close() print s In Python, l operatore readline() legge una riga e la restituisce come stringa. Ma se il file è finito? Ovvero, non c è più niente? La funzione restituisce il carattere vuoto Questo ci permette di creare una condizione di «fine file» in modo da leggere finché non arriviamo al termine, secondo lo schema: while linea!= : istruzioni da eseguire #leggi prossima linea Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 11 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 12

Scrivere un programma Python che legga da file numeriestringhe.txt il suo contenuto che è costituito da numeri e stringhe alternate a caso, separate da «a capo», e ponga ogni elemento in una lista. Esempio: Ciao -2.4 1 0.4 buonanotte f=open( numeriestringhe.txt, r ) l=[] while linea!= : #se il file non è finito l=l+[linea] Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 13 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 14 Scrivere un programma Python che legga da file numeriestringhe.txt il suo contenuto che è costituito da numeri e stringhe alternate a caso, separate da «a capo», e gli elementi formati da sole cifre nella lista numeri e tutti gli altri nella listastringhe. Esempio: Ciao -2.4 1 404 buonanotte 1, 404 numeri Ciao, -2.4, buonanotte stringhe Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 15 f=open( numeriestringhe.txt, r ) numeri=[] stringhe=[] while linea!= : #se il file non è finito if linea.isdigit() : numeri=numeri+[linea] else: stringhe=stringhe+[linea] Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 16

Scrivere un programma che legge da file una sequenza di interi, separati da a capo (quindi un intero per riga), e la memorizza in una lista. Il nome del file viene fornito da tastiera. Il vettore può avere al massimo 50 valori, ma il file presenta un numero di interi non definito. Si stampi a video eventualmente un avviso se la lunghezza massima del vettore è stata raggiunta interrompendo l acquisizione di valori Si stampi a video infine il vettore acquisito. #Programma che legge max 50 interi da file e li memorizza in un vettore nomefile=raw_input( Inserire il nome del file:\n ) fp=open(nomefile, r ) #senza le virgolette: è una variabile, non una stringa lista=[] #inizializzazione del vettore i=0 #inizializzazione del contatore di interi letti da file linea=fp.readline() while((linea!= ) and (i<50)): #finché il file non è finito AND i<50 lista = lista + [int(linea)] i=i+1 #incrementa i linea=fp.readline() if(i==50): print( \nmax numero di valori acquisibile raggiunto.\n ) fp.close() print lista Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 17 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 18 E dato un file «dati.txt» caratterizzato dal seguente formato rappresentante delle coppie nome/età. Per esempio: Pippo 23 Ada 19 Felice 32 Geronima 40 Ciccio 19 Si legga tutto il file creando un dizionario le cui chiavi sono fornite dall età. A ciascuna età viene associata una lista con i nomi di persone che hanno quell età. Il dizionario generato dal file di cui sopra sarà: {19:[ Ada, Ciccio ], 23:[ Pippo ], 32:[ Felice ], 40:[ Geronima ]} Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 19 f=open("dati.txt","r") #apro in lettura d={} #inizializzo il dizionario s=f.readline() #leggo una riga while s!="": #finché il file non è finito s=s.split() #divido la riga nei campi dati eta=int(s[1]) #converto il secondo elemento if eta in d: #se l età è già presente d[eta]=d[eta]+[s[0]] #aggiungo il nome else: #altrimenti d[eta]=[s[0]] #aggiungo età e nome s=f.readline() #leggo una nuova riga #chiudo il file Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 20

2 Dato un dizionario popolato secondo l esercizio precedente, scrivere un programma Python che, letta da tastiera la stringa indicante un nome proprio, stampi su file l età associata al nome indicato se presente, altrimenti scriva su file"non presente". Il nome del file è dato dal nome inserito a cui viene aggiunta l estensione".txt" Esempio. Si consideri il dizionario dell esercizio precedente. Se da tastiera viene inserito il nome "Felice", il programma scriverà su file"felice.txt" il valore 32 (vedi esempio). nome=input("inserisci un nome:") #leggo un nome presente=false #tecnica: uso una variabile per verificare #l'evento:"ho trovato il nome nel dizionario" f=open(nome+".txt","w") #apro il file in scrittura #inizio la ricerca for eta in d: #per ogni età presente in d if nome in d[eta]: #se il nome compare almeno una volta f.write(str(eta)+"\n") #stampo l'età presente=true #ho trovato il nome nel dizionario if not presente: #se non l'ho trovato nemmeno una volta f.write("non presente") #scrivo che non è presente #chiudo il file Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 21 Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 22 Per saperne di più K.A. Lambert, Programmazione in Python, Cap. 4, Apogeo Fondamenti di Informatica - A.A. 2018/19 - Prof. Gian Luca Marcialis 23