Φόρουμ Εκμάθησης Λογισμικού
Εκμάθηση λογισμικού => Python => νμα ξεκίνησε π: Erdeh στις Δεκ 20, 2025, 09:20 ΜΜ
Η Python προσφέρει μια εξαιρετικά ισχυρή και απλή δομή για τις λειτουργίες αρχείων. Οι λειτουργίες ανάγνωσης και γραφής αρχείων είναι απαραίτητες σε πολλά σενάρια, όπως η ανάλυση δεδομένων, η διαχείριση αρχείων διαμόρφωσης, η καταγραφή log ή η δημιουργία απλών εναλλακτικών βάσεων δεδομένων. Σε αυτό το άρθρο, θα εξετάσουμε λεπτομερώς τις βασικές μεθόδους λειτουργιών αρχείων στην Python, τις πιο κοινές χρησιμοποιούμενες συναρτήσεις και τις καλές πρακτικές.Βασικό Άνοιγμα Αρχείου: Συνάρτηση open()Στην Python, οι λειτουργίες αρχείων ξεκινούν με τη συνάρτηση open(). Αυτή η συνάρτηση δέχεται δύο βασικές παραμέτρους:- Διαδρομή αρχείου (file path)
- Λειτουργία (mode): Ανάγνωση ("r"), γραφή ("w"), προσθήκη ("a"), δυαδική ("b")
Παράδειγμα:# Ανάγνωση αρχείου κειμένου
with open("ornek.txt", "r", encoding="utf-8") as dosya:
icerik = dosya.read()
print(icerik)Η χρήση του μπλοκ with είναι πολύ σημαντική γιατί το αρχείο κλείνει αυτόματα και αποτρέπεται η διαρροή πόρων.Κοινές Λειτουργίες- "r": Περιγραφή: Ανάγνωση (προεπιλογή). Αν το αρχείο δεν υπάρχει: Δίνει σφάλμα. Διαγράφει το υπάρχον περιεχόμενο: Όχι.
- "w": Περιγραφή: Γραφή. Αν το αρχείο δεν υπάρχει: Δημιουργεί νέο αρχείο. Διαγράφει το υπάρχον περιεχόμενο: Ναι.
- "a": Περιγραφή: Προσθήκη (append). Αν το αρχείο δεν υπάρχει: Δημιουργεί νέο αρχείο. Διαγράφει το υπάρχον περιεχόμενο: Όχι.
- "r+": Περιγραφή: Και ανάγνωση και γραφή. Αν το αρχείο δεν υπάρχει: Δίνει σφάλμα. Διαγράφει το υπάρχον περιεχόμενο: Όχι.
- "wb": Περιγραφή: Δυαδική γραφή (εικόνες, βίντεο κλπ.). Αν το αρχείο δεν υπάρχει: Δημιουργεί νέο αρχείο. Διαγράφει το υπάρχον περιεχόμενο: Ναι.
Ανάγνωση Αρχείου Γραμμή προς ΓραμμήΓια μεγάλα αρχεία, είναι πιο αποδοτικό να διαβάζονται γραμμή προς γραμμή αντί να φορτώνονται ολόκληρα στη μνήμη:with open("buyuk_dosya.txt", "r", encoding="utf-8") as dosya:
for satir in dosya:
print(satir.strip()) # strip() για να καθαρίσει τα κενά στην αρχή/τέλοςΉ για συγκεκριμένο αριθμό γραμμών:with open("dosya.txt", "r", encoding="utf-8") as dosya:
ilk_bes_satir = dosya.readlines()[:5]Γραφή και Προσθήκη σε Αρχείο# Δημιουργία νέου αρχείου και γραφή
with open("yeni_dosya.txt", "w", encoding="utf-8") as dosya:
dosya.write("Αυτή είναι η πρώτη γραμμή.\n")
dosya.write("Αυτή είναι η δεύτερη γραμμή.\n")
# Προσθήκη σε υπάρχον αρχείο
with open("yeni_dosya.txt", "a", encoding="utf-8") as dosya:
dosya.write("Αυτή είναι η προστεθείσα γραμμή.\n")Για γραφή πολλαπλών γραμμών με writelines():satirlar = ["Γραμμή 1\n", "Γραμμή 2\n", "Γραμμή 3\n"]
with open("dosya.txt", "w", encoding="utf-8") as dosya:
dosya.writelines(satirlar)Εργασία με Αρχεία CSVΤα αρχεία CSV (Comma Separated Values) είναι πολύ κοινά στην ανταλλαγή δεδομένων. Η ενσωματωμένη μονάδα csv της Python το κάνει εύκολο:import csv
# Γραφή CSV
with open("veriler.csv", "w", newline="", encoding="utf-8") as dosya:
yazar = csv.writer(dosya)
yazar.writerow(["Όνομα", "Ηλικία", "Πόλη"])
yazar.writerow(["Γιάννης", 30, "Αθήνα"])
yazar.writerow(["Μαρία", 25, "Θεσσαλονίκη"])
# Ανάγνωση CSV
with open("veriler.csv", "r", encoding="utf-8") as dosya:
okuyucu = csv.reader(dosya)
for satir in okuyucu:
print(satir)Διαχείριση ΣφαλμάτωνΕίναι σημαντικό να συλλαμβάνονται τα σφάλματα που μπορεί να προκύψουν κατά τις λειτουργίες αρχείων:try:
with open('olmayan_dosya.txt', "r", encoding="utf-8") as dosya:
print(dosya.read())
except FileNotFoundError:
print("Το αρχείο δεν βρέθηκε!")
except PermissionError:
print("Δεν υπάρχει άδεια πρόσβασης στο αρχείο!")
except Exception as e:
print(f"Απροσδόκητο σφάλμα: {e}")Καλές Πρακτικές και Συμβουλές• Χρησιμοποιείτε πάντα encoding="utf-8" (για να αποφύγετε προβλήματα με ελληνικούς χαρακτήρες).• Για μεγάλα αρχεία, προτιμήστε το readline() ή την προσέγγιση generator.• Για δυαδικά αρχεία (εικόνες, PDF), χρησιμοποιήστε τις λειτουργίες "rb" ή "wb".• Με τη μονάδα pathlib, μπορείτε να κάνετε σύγχρονη διαχείριση διαδρομών αρχείων (Python 3.4+).ΣυμπέρασμαΟι λειτουργίες ανάγνωσης και γραφής αρχείων στην Python είναι αρκετά απλές και χρησιμοποιούνται συχνά σε καθημερινές διαδικασίες ανάπτυξης. Με αυτές τις βασικές γνώσεις, μπορείτε εύκολα να πραγματοποιήσετε πολλές λειτουργίες, όπως αποθήκευση δεδομένων, καταγραφή log ή λήψη δεδομένων από εξωτερικές πηγές. Για εξάσκηση, δοκιμάστε να γράψετε μια απλή εφαρμογή σημειωματάριου!