Δημοσιεύτηκε: 19 Δεκ 2013, 09:14
Ilias95 έγραψε:Όπως τρέχει το πρόγραμμα σου μπορεί να συμβούν διάφορα πράγματα όπως να κρασάρει ή να προκύψει οποιοδήποτε σφάλμα. Αν αυτό γίνει όσο το αρχείο είναι ανοιχτό απ' το πρόγραμμα σου, το αρχείο θα παραμείνει ανοιχτό και μετά τον τερματισμό του προγράμματος και αυτό σίγουρα δεν είναι καλό. Αυτό αντιμετωπίζεται είτε με ένα try..finally block είτε με το with statement το οποίο είναι ένας πολύ καλύτερος τρόπος να το κάνεις. Ουσιαστικά σου εξασφαλίζει ότι σε οποιαδήποτε περίπτωση το αρχείο που άνοιξες θα κλείσει κανονικά.
Μάλιστα ωραία, έχεις δίκιο σε αυτό. και σε ευχαριστώ πάρα πολύ, η σύνταξη δηλαδή είναι :
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
with open ("text.txt", "w", encoding='utf8') as file:
file.write("ubuntu-gr.org")
.
..
...
Χωρίς να βάλω στο τέλος file.close() , με το που τελειώσει το block θα κλείνει;
Ilias95 έγραψε:Το θέμα είναι τι εννοείς στοιχεία; Μαντεύω ότι θες να διαβάσεις αρχεία που έχουν συγκεκριμένη μορφή ή ακολουθούνται κάποια μοτίβα σ' αυτά. Ανάλογα την περίπτωση θα κάνεις διαφορετικούς χειρισμούς. Πχ. μπορείς να διαβάζεις το αρχείο γραμμή, γραμμή και έτσι να τερματίζεις την διαδικασία όποτε το θέλεις εσύ.
Διάβασε όλο το κεφάλαιο files στο dive into python αν θες.
Ωραία, να διαβάζω το αρχείο στοιχείο, στοιχείο; Δηλαδή, πες πως έχω ένα αρχείο με μόνο αριθμούς ( ακέραιους π.χ. ), και να θέλω να προσθέτω κάθε φορά τον προηγούμενο αριθμό με τον επόμενο και στο τέλος να αφήσω μόνο το άθροισμα τους, ή π.χ. να θέλω να βρω μέσα στο αρχείο ακεραίων σε ποια θέση, είναι το νούμερο 5

Αν και εγώ είμαι της python 3, αν βάλεις encoding utf8 δε διορθώνεται ;
kamar έγραψε:Μια βασική παράμετρος είναι το encoding, που πρέπει να δηλώνεται utf8, ειδικά αν γράφεις και για windows.