Η εργασία με αρχεία κειμένου είναι μια από τις πιο σημαντικές εργασίες για τους χρήστες της Python, είτε πρόκειται για αρχάριους είτε για επαγγελματίες. Η ανάγνωση, η τροποποίηση, η επεξεργασία και η αποθήκευση δεδομένων μπορούν να επιτευχθούν σε λίγες μόνο γραμμές όταν χρησιμοποιούνται τα κατάλληλα εργαλεία της γλώσσας. Η δύναμη της Python αποδεικνύεται ξεκάθαρα από την ευκολία χειρισμού αρχείων, παρέχοντας άμεσες λειτουργίες για την πρόσβαση, την οργάνωση και τη μετατροπή κειμένου σε μορφή κατάλληλη για οποιοδήποτε έργο λογισμικού, μεγάλο ή μικρό. Η κατανόηση των βασικών αρχών επιτρέπει στους προγραμματιστές να ολοκληρώνουν εργασίες γρήγορα και αποτελεσματικά, ειδικά όταν εργάζονται με αρχεία, ρυθμίσεις ή δεδομένα που συλλέγονται από διάφορες πηγές.

Εργάζεστε με πολλά αρχεία κάθε μέρα; Μεγάλα και μικρά; Χαοτικά και οργανωμένα; Όποια και αν είναι η εργασία σας, η Python κάνει τη διαχείριση αρχείων απίστευτα εύκολη. Με λίγη κωδικοποίηση, μπορείτε να εξοικονομήσετε ώρες εργασίας και να χαλαρώσετε. Ας εξερευνήσουμε τη μαγεία της Python για τη διαχείριση αρχείων.
Ανάγνωση αρχείου κειμένου
Όταν εργάζεστε με εγγραφές, αρχεία ρυθμίσεων, σύνολα δεδομένων ή οποιαδήποτε μορφή κειμένου, η πρώτη δεξιότητα που χρειάζεστε είναι η ικανότητα αποτελεσματικής ανάγνωσης ενός αρχείου. Η Python κάνει αυτή τη διαδικασία απίστευτα εύκολη με την ενσωματωμένη συνάρτηση `open()` και ορισμένες χρήσιμες τεχνικές ανάγνωσης. Ενώ η `open()` είναι η τυπική πύλη, ο τρόπος χειρισμού αρχείων στην Python είναι η χρήση ενός διαχειριστή περιβάλλοντος (η πρόταση `with`).
with open("server.log", "r") as f:
content = f.read()
print(content)
Αυτή είναι η προσέγγιση "δώσε μου τα πάντα". Αν το αρχείο είναι μικρό ή μεσαίου μεγέθους, είναι ιδανικό. Η Python φορτώνει ολόκληρο το αρχείο στη μνήμη ως μία μόνο συμβολοσειρά. Η χρήση της συνάρτησης `with` διασφαλίζει ότι η Python κλείνει το αρχείο για εσάς. Η Python χειρίζεται τη ρύθμιση και τη διαγραφή των πόρων του αρχείου.
Αν θέλετε να διαβάσετε κάθε γραμμή ξεχωριστά, χρησιμοποιήστε αυτήν τη μέθοδο:
with open("users.txt", "r") as f:
for line in f:
print(line.strip())
Μπορείτε επίσης να αξιοποιήσετε τις συναρτήσεις readline() και readlines() στην Python.
# Read the first line
with open("data.txt", "r") as f:
first_line = f.readline()
# Read all lines into a list
with open("data.txt", "r") as f:
lines = f.readlines()
Η συνάρτηση `readline()` είναι εξαιρετική όταν χρειάζεστε μόνο έναν συγκεκριμένο αριθμό γραμμών. Αυτό είναι χρήσιμο εάν χρειάζεται να έχετε πρόσβαση σε συγκεκριμένες γραμμές μέσω ευρετηρίου, για παράδειγμα, lines[5]. Η συνάρτηση `readlines()` παρουσιάζει κάθε γραμμή ως λίστα, κάτι που είναι βολικό για ευρετηρίαση, τμηματοποίηση και γρήγορους μετασχηματισμούς.
Εγγραφή σε αρχεία κειμένου
Τελικά, κάθε προγραμματιστής Python χρειάζεται να εισάγει ξανά κάτι σε ένα αρχείο. Ίσως δημιουργείτε αναφορές, αποθηκεύετε καθαρά δεδομένα ή γράφετε αρχεία καταγραφής από το σενάριό σας. Τα καλά νέα είναι ότι η εγγραφή σε αρχεία στην Python είναι τόσο εύκολη όσο η ανάγνωσή τους. Για να γράψετε νέο περιεχόμενο σε ένα αρχείο:
report = "Daily summary: All systems operational.\n"
with open("summary.txt", "w") as f:
f.write(report)
log_entry = "User logged in at 14:32\n"
with open("activity.log", "a") as f:
f.write(log_entry)
lines = [
"apple\n",
"banana\n",
"cherry\n"
]
with open("fruits.txt", "w") as f:
f.writelines(lines)
Αναζήτηση μέσα σε αρχεία κειμένου
target = "ERROR"
with open("server.log", "r") as f:
for line in f:
if target in line:
print("Found error:", line.strip())
import re
pattern = re.compile(r"User\s+\d+\s+logged\s+in")
with open("activity.log", "r") as f:
for line in f:
if pattern.search(line):
print("Match:", line.strip())

Σκεφτείτε σενάρια όπου χρειάζεται να ανακαλύψετε αναγνωριστικά, χρονικές σημάνσεις, μορφές ή οτιδήποτε έχει δομή. Σε αυτό το παράδειγμα, βρίσκουμε γραμμές όπου ένας χρήστης συνδέθηκε με ένα αριθμητικό αναγνωριστικό.
Αντικατάσταση κειμένου σε αρχεία
Η αναζήτηση είναι εξαιρετική. Αλλά αργά ή γρήγορα, θα χρειαστεί να αλλάξετε τα περιεχόμενα του αρχείου. Η Python κάνει την αντικατάσταση κειμένου εκπληκτικά εύκολη μόλις κατανοήσετε τα βασικά μοτίβα. Για βασικές εργασίες αναζήτησης και αντικατάστασης, μπορείτε να χρησιμοποιήσετε τις λειτουργίες κειμένου της Python.
old = "ERROR"
new = "INFO"
with open("server.log", "r") as f:
content = f.read()
updated = content.replace(old, new)
with open("server.log", "w") as f:
f.write(updated)
import re
pattern = r"\bUser\s+(\d+)\b"
replacement = r"Account \1"
with open("activity.log", "r") as f:
content = f.read()
updated = re.sub(pattern, replacement, content)
with open("activity.log", "w") as f:
f.write(updated)
Ας υποθέσουμε ότι έχετε ένα αρχείο κειμένου και χρειάζεστε ορισμένες βασικές μετρήσεις, όπως τον αριθμό των γραμμών, των λέξεων και την εμφάνιση λέξεων. Αυτές οι πληροφορίες μπορούν να είναι χρήσιμες για την ανάλυση κειμένου, τις αναφορές και την επεξεργασία δεδομένων. Η Python το κάνει αυτό εύκολο. Μπορείτε να χρησιμοποιήσετε βρόχους για την καταμέτρηση.
line_count = 0
char_count = 0
μαζί σου, ανοίξτε(«σημειώσεις.txt», "Ρ") as f:
για γραμμή in f:
γραμμών += 1
char_count += len(γραμμή)
αποτύπωμα(«Γραμμές:»(αριθμός_γραμμών)
αποτύπωμα(«Χαρακτήρες:», char_count)
Αυτός ο απλός βρόχος λειτουργεί καλά ακόμα και με μεγάλα αρχεία. Διαβάστε μία γραμμή τη φορά, μετρήστε την και παρακολουθήστε τον συνολικό αριθμό χαρακτήρων κατά μήκος της. Για να μετρήσετε λέξεις:
word_count = 0
with open("notes.txt", "r") as f:
for line in f:
words = line.split()
word_count += len(words)
print("Words:", word_count)
Ο διαχωρισμός κάθε γραμμής χρησιμοποιώντας την .split() παρέχει μια λίστα λέξεων, η οποία είναι ιδανική όταν εκτελείτε απλές μετρήσεις που βασίζονται σε λέξεις.
Για πιο προηγμένη ανάλυση λέξεων, μπορείτε να χρησιμοποιήσετε την ενότητα collections , όπως αυτό:
from collections import Counter
counter = Counter()
with open("notes.txt", "r") as f:
for line in f:
counter.update(line.split())
print(counter.most_common(5))

Αν χρειάζεται να βρείτε τις πιο συνηθισμένες λέξεις, το εργαλείο "Counter" είναι πολύ χρήσιμο. Μετράει τα στοιχεία για εσάς και μπορεί ακόμη και να σας πει τις πιο συνηθισμένες λέξεις (N) χρησιμοποιώντας τη συνάρτηση .most_common().
Διαχωρισμός και συγχώνευση αρχείων
Τα αρχεία κειμένου μπορούν να γίνουν τεράστια. Φανταστείτε να εργάζεστε με σύνολα δεδομένων που περιέχουν εκατομμύρια γραμμές ή μαζικές εξαγωγές που είναι δύσκολο να διαχειριστείτε όλες ταυτόχρονα. Μερικές φορές χρειάζεται να χωρίσετε ένα αρχείο σε μικρότερα μέρη και άλλες φορές χρειάζεται να συγχωνεύσετε πολλά αρχεία σε ένα ενιαίο, σαφές και ενοποιημένο αποτέλεσμα. Η Python χειρίζεται και τις δύο εργασίες με ευκολία.
Ένας τρόπος για να διαχωρίσετε ένα αρχείο είναι να πάρετε έναν σταθερό αριθμό γραμμών και να τις γράψετε σε νέα αρχεία. Δείτε πώς:
chunk_size = 10
file_number = 1
current_lines = []
with open("bigdata.txt", "r") as f:
for i, line in enumerate(f, start=1):
current_lines.append(line)
if i % chunk_size == 0:
output_name = f"chunk_{file_number}.txt"
with open(output_name, "w") as out:
out.writelines(current_lines)
current_lines = []
file_number += 1
# write any remaining lines
if current_lines:
output_name = f"chunk_{file_number}.txt"
with open(output_name, "w") as out:
out.writelines(current_lines)
Για να συγχωνεύσετε πολλά αρχεία σε μία μόνο ενότητα, η ενότητα glob της Python είναι χρήσιμη.
import glob
with open("merged_output.txt", "w") as outfile:
for filename in glob.glob("logs/log*"):
with open(filename, "r") as infile:
outfile.write(infile.read())
Εδώ, το glob συγκεντρώνει όλα τα αρχεία που ξεκινούν με `log` σε έναν φάκελο `logs/` και μπορείτε απλώς να προσθέσετε το περιεχόμενό τους σε ένα μόνο αρχείο. Αυτό είναι ιδανικό όταν ασχολείστε με καθημερινά αρχεία καταγραφής, εξαγωγή μερικών δεδομένων ή οποιονδήποτε φάκελο γεμάτο με σχετικά αρχεία.
Μόλις ενσωματωθούν τα εργαλεία σας, μπορείτε να αυτοματοποιήσετε κάθε είδους εργασίες ρουτίνας. Για παράδειγμα, συγχώνευση εβδομαδιαίων αρχείων καταγραφής σε ένα μηνιαίο αρχείο καταγραφής, διαχωρισμός μεγάλων αρχείων εισόδου πριν από την εισαγωγή τους σε ένα σενάριο και πολλά άλλα.
Διαχείριση σφαλμάτων και ασφαλείς λειτουργίες αρχείων
Στην πράξη, όταν εργάζεστε με αρχεία, τα πράγματα δεν πάνε πάντα όπως έχει προγραμματιστεί. Οι λειτουργίες αρχείων μπορεί να αποτύχουν για διάφορους λόγους. Το αρχείο ενδέχεται να μην υπάρχει ή το πρόγραμμά σας ενδέχεται να μην έχει άδεια ανάγνωσης ή εγγραφής σε αυτό. Εάν το σενάριο παρουσιάσει σφάλμα κατά τη διάρκεια της διαδικασίας, υπάρχει κίνδυνος καταστροφής δεδομένων ή η μη εγγραφή αρχείων.
Για ασφαλέστερη είσοδο/έξοδο αρχείων, συνιστάται η χρήση του μπλοκ try/except στην Python για τον χειρισμό σφαλμάτων Python.
filename = "config.txt"
try:
with open(filename, "r") as f:
data = f.read()
print("File loaded successfully.")
except FileNotFoundError:
print("File not found:", filename)
except PermissionError:
print("You don’t have permission to read this file.")
except Exception as e:
print("Unexpected error:", e)

Αυτό σας επιτρέπει να εντοπίσετε πιθανά προβλήματα, όπως αρχεία που λείπουν ή προβλήματα δικαιωμάτων. Ένα άλλο συνηθισμένο πρόβλημα που μπορεί να αντιμετωπίσετε είναι η κωδικοποίηση. Επομένως, φροντίστε να το αντιμετωπίσετε όταν δεν είστε σίγουροι για τον τύπο κωδικοποίησης που μπορεί να χρησιμοποιεί ένα αρχείο.
try:
with open("encoding.txt", "r", encoding="utf-8") as f:
content = f.read()
print("File loaded successfully.")
except UnicodeDecodeError:
print("File encoding is not UTF-8. Trying fallback…")
with open("encoding.txt", "r", encoding="latin-1") as f:
content = f.read()
print("Fallback load succeeded:")
print(content)
Η εξειδίκευση στη διαχείριση αρχείων κειμένου δίνει στους προγραμματιστές Python μεγαλύτερο έλεγχο στη διαχείριση και την οργάνωση δεδομένων στα έργα τους. Τα βασικά εργαλεία της γλώσσας επαρκούν για τις περισσότερες λειτουργίες χωρίς την ανάγκη εξωτερικών βιβλιοθηκών και με την εξάσκηση, αυτές οι εργασίες γίνονται ταχύτερες και ευκολότερες. Η κατανόηση αυτών των τεχνικών είναι ένα σημαντικό βήμα για όποιον θέλει να αναπτύξει τις προγραμματιστικές του δεξιότητες και να επεκτείνει την ικανότητά του να δημιουργεί πιο επαγγελματικά έργα.



