Ένας οδηγός για την εργασία με αρχεία κειμένου στο Go

Ένας οδηγός για την εργασία με αρχεία κειμένου στο Go

Ως γλώσσα προγραμματισμού, η Go διαθέτει ένα ευρύ φάσμα ενσωματωμένων λειτουργιών, συμπεριλαμβανομένης της δυνατότητας δημιουργίας, ανάγνωσης και εγγραφής αρχείων όπως αρχεία κειμένου (.txt).





πώς να μετατρέψετε ένα βιβλίο ανάφλεξης σε pdf

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





ΚΑΤΑΣΚΕΥΗ ΒΙΝΤΕΟ ΤΗΣ ΗΜΕΡΑΣ

Αν αναρωτιέστε πώς θα μπορούσατε να αρχίσετε να χειρίζεστε αρχεία κειμένου στο Go, αυτό το άρθρο είναι το κατάλληλο μέρος για εσάς.





Το πακέτο bufio in Go

ο bufio Το πακέτο, το οποίο αποτελεί μέρος της τυπικής βιβλιοθήκης του Go, χρησιμοποιείται για λειτουργίες εισόδου και εξόδου σε buffer, εξ ου και το όνομα. ο bufio πακέτο βασίζεται στο io.Αναγνώστης και ιο.Συγγραφέας διεπαφές, οι οποίες χρησιμοποιούνται εκτενώς στην υλοποίηση της πλειοψηφίας των τυπικών πακέτων της Go.

ο bufio Το πακέτο προχωρά ένα βήμα παραπέρα εφαρμόζοντας buffering, καθιστώντας το χρήσιμο για λειτουργίες IO που περιλαμβάνουν δεδομένα κειμένου.



Για να χρησιμοποιήσετε το bufio πακέτο στο πρόγραμμά σας, θα πρέπει να το εισαγάγετε μαζί με άλλα πακέτα.

import ( 
"fmt"
"bufio"
)

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





ο εσείς και bufio Τα πακέτα κάνουν τον χειρισμό αρχείων κειμένου απίστευτα απλό.

Το wifi είναι συνδεδεμένο αλλά δεν υπάρχει internet

Αν και η συντριπτική πλειοψηφία των εσείς Οι λειτουργίες του πακέτου είναι τύπου Unix, όλες χρησιμοποιούν το στυλ χειρισμού σφαλμάτων Go, το οποίο καθιστά εύκολη την ανάγνωση μηνυμάτων σφάλματος και τον κώδικα εντοπισμού σφαλμάτων.





Λοιπόν, πώς χειρίζεστε αρχεία που περιέχουν κείμενο στο Go;

Πώς να διαβάσετε δεδομένα από ένα αρχείο κειμένου

Για να διαβάσετε δεδομένα από αρχεία κειμένου, πρέπει να καλέσετε το εσείς του πακέτου Ανοιξε() συνάρτηση, η οποία δέχεται το όνομα του προς ανάγνωση αρχείου ως παράμετρο. Μια άλλη μέθοδος για να λάβετε το αρχείο είναι χρησιμοποιώντας το Ανοιγμα αρχείου() λειτουργία.

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

πώς να επεξεργαστείτε το υπάρχον κείμενο στο photoshop
  • Ονομα αρχείου
  • Λειτουργία ανοιχτού αρχείου: Οι έγκυρες λειτουργίες ανοίγματος αρχείων φαίνονται στον παρακάτω πίνακα.
    Σημαία Εννοια
    O_RDONLY Ανοίγει το αρχείο σε λειτουργία μόνο για ανάγνωση
    O_WRONLY Ανοίγει το αρχείο σε λειτουργία μόνο εγγραφής
    O_RDWR Ανοίγει το αρχείο σε λειτουργία ανάγνωσης-εγγραφής
    O_APPEND Προσθέτει δεδομένα στο αρχείο κατά τη σύνταξη
    O_CREATE Δημιουργεί ένα νέο αρχείο εάν δεν υπάρχει
    O_EXCL Χρησιμοποιείται με το O_CREATE, για να υποδείξει ότι το αρχείο πρέπει να δημιουργηθεί μόνο εάν δεν υπάρχει
    O_SYNC Ανοίγει το αρχείο για σύγχρονη I/O
    O_TRUNC Περικόψτε το αρχείο στο ανοιχτό, αν είναι δυνατόν
  • Δικαιώματα αρχείου: Ίδια με το bit άδειας αρχείων στο Linux χρησιμοποιείται για τον καθορισμό κανόνων πρόσβασης αρχείων, π.χ. 0777 για την παραχώρηση αδειών ανάγνωσης, εγγραφής και εκτέλεσης σε όλους τους τύπους χρηστών.

Ο παρακάτω κώδικας δείχνει πώς να διαβάζετε δεδομένα από ένα αρχείο κειμένου στο Go χρησιμοποιώντας os.Open() , και Σάρωση() που σε αυτή την περίπτωση, τρέχει σε α Πηγαίνετε για βρόχο .

package main 
import (
"bufio"
"fmt"
"log"
"os"
)
/**
CONTENT OF THE "testfile.txt" file.
lorem ipsum dolor sit amet
LOREM IPSUM DOLOR SIT AMET
Lorem ipsum dolor sit amet
Lorem Ipsum Dolor Sit Amet
lOREM iPSUM dOLOR sIT aMET
LoReM IpSuM DoLoR SiT AmEt
*/
func main() {
file, err := os.Open("testfile.txt")
// another method using os.OpenFile()
// file, err = os.OpenFile("testfile.txt", os.O_RDONLY, 0644)
if err != nil {
log.Fatal(err)
}
defer file.()
fmt.Println("File opened successfully. Now reading file contents line by line:")
// create scanner from the file to read text from
scanner := bufio.NewScanner(file)
// scan or read the bytes of text line by line
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}

Όταν εκτελείτε τον παραπάνω κώδικα με τρέξτε το filename.go , παράγει την έξοδο που φαίνεται παρακάτω:

  Έξοδος προγράμματος για ανάγνωση κειμένου από αρχείο