Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 13 Αρχεία Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Θεματική Ενότητα 13 Αρχεία Δεδομένων Τμήμα Διοίκησης Επιχειρήσεων β εξάμηνο Β. Φερεντίνος, Α. Κακαρούντας
Αρχεία - files Δυνατότητα ανάγνωσης/εγγραφής δεδομένων από/προς αρχεία αντίστοιχα. Κατάλληλη για διατήρηση δεδομένων και μετά το πέρας του προγράμματος (σε αντίθεση με τα δεδομένα που κρατούν οι μεταβλητές) Κατάλληλη για αποθήκευση μεγάλου όγκου δεδομένων Κατάλληλη για επεξεργασία δεδομένων που έχουν προκύψει από άλλη εφαρμογή ή πρόγραμμα Στην Python το προς διαχείριση αρχείο "συνδέεται" με το πρόγραμμα μέσω ενός αντικειμένου αρχείου (file object) *. Για την διαχείριση αρχείων χρησιμοποιεί έναν άλλο τύπο συναρτήσεων που ονομάζονται μέθοδοι (methods) *. Το άνοιγμα του αρχείου εκτελείται με την εντολή open, η εγγραφή με την μέθοδο.write, η ανάγνωση με τις μεθόδους.read και.readline και το κλείσιμο (στο τέλος) με την μέθοδο.close Διαδικασία: Open read ή write close * = Τα αντικείμενα (objects) και οι μέθοδοι (methods) θα παρουσιαστούν εκτενώς στις δομές δεδομένων που χρησιμοποιεί η Python και στην λειτουργία της ως αντικειμενοστραφής γλώσσα προγραμματισμού.
Files - open file_variable = open( filename, mode ) Το file_variable αποτελεί μεταβλητή που αναφέρεται στο file object filename='names.txt' filename= r 'C:\User\temp\test.txt' modes= 'r' : read only 'w' : write (αν υπάρχει αρχείο με το ίδιο όνομα σβήνονται τα προηγούμενα περιεχόμενά του, αν δεν υπάρχει δημιουργείται) 'a' : append write (αν υπάρχει αρχείο με το ίδιο όνομα γράφονται τα νέα δεδομένα μετά από τα προηγούμενα περιεχόμενά του, αν δεν υπάρχει δημιουργείται) 't' : text (τύπος αρχείου κειμένου) 'b' : binary (τύπος αρχείου δεδομένων) Default τιμές (open χωρίς modes): 't'ext file και 'r'ead
Files write close Μετά από το άνοιγμα: file_variable = open( filename, 'w' or 'a') Η εγγραφή δεδομένων γίνεται με την μέθοδο write: file_variable.write( string ) Για την οριστικοποίηση της εγγραφής απαιτείται και κλείσιμο του αρχείου, με την μέθοδο close: file_variable.close() outfile = open('names.txt', 'w') names.txt : outfile.write('john\n') John David outfile.write('david' + '\n') Ta '\n' σε text editor δημιουργούν νέα γραμμή outfile.close() +: Τελεστής συνένωσης αλφαριθμητικών, συνήθως χρησιμοποιείται για εγγραφή σε αρχείο αριθμητικών δεδομένων που βρίσκονται σε μεταβλητές
Files read close Μετά από το άνοιγμα: file_variable = open( filename, 'r') Η ανάγνωση δεδομένων γίνεται με την μέθοδο read: file_variable.read() Για την οριστικοποίηση της εγγραφής απαιτείται και κλείσιμο του αρχείου, με την μέθοδο close: file_variable.close() infile = open('names.txt', 'r') file_contents = infile.read() # ανάγνωση όλων των περιεχομένων του αρχείου infile.close() print(file_contents) John David
Files - readline Η μέθοδος readline δεν διαβάζει ολόκληρο το αρχείο αλλά μία γραμμή χαρακτήρων κάθε φορά που εκτελείται (μέχρι το επόμενο \n). infile = open('names.txt', 'r') line1 = infile.readline() line2 = infile.readline() infile.close() print(line2) print(line1. rstrip('\n') ) David John Η μέθοδος.rstrip αφαιρεί "λωρίδες" (strips) χαρακτήρων από το τέλος του αλφαριθμητικού (r: από το right - δεξιά πλευρά) Για αρχείο με πολλές γραμμές: line = infile.readline() while line!= ' ': #ή len(line)!= 0 print(line) line = infile.readline() Ή for line in infile : #χωρίς έλεγχο print(line) # χωρίς readline Η readline επιστρέφει και το \n που βρίσκει στο τέλος κάθε γραμμής, μέσα στο κείμενο του αρχείου
Περισσότερα για τα αρχεία Αν το αρχείο είναι τύπου text (mode='t') τότε: Η write πρέπει να αποθηκεύει ως αλφαριθμητικά ακόμα και τα αριθμητικά δεδομένα f=open('data.txt', 'w') x=5 f.write(str(x) + '\n') # str: συνάρτηση μετατροπής f.close() # αριθμού σε αλφαριθμητικό Οι read/readline επιστρέφουν αλφαριθμητικά. Αν στο αρχείο έχουν αποθηκευτεί αριθμητικά δεδομένα κατά την ανάκτησή τους πρέπει να μετατραπούν σε αριθμητικά (με τις int ή folat) f=open('data.txt', 'r') x=int(f.readline() ) f.close() Ισχύουν τα αντίθετα αν πρόκειται για αρχείο τύπου binary (mode='b') Module os (import os) για διαχείριση αρχείων: os.remove('file1.txt') # Delete a file. os.rename('file2.txt', 'file1.txt')# Rename a file
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Θεματική Ενότητα 13 Αρχεία Δεδομένων Τμήμα Διοίκησης Επιχειρήσεων β εξάμηνο Β. Φερεντίνος, Α. Κακαρούντας
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/από-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.