Vodnik za delo z besedilnimi datotekami v Go

Vodnik za delo z besedilnimi datotekami v Go

Kot programski jezik ima Go široko paleto vgrajenih funkcij, vključno z možnostjo ustvarjanja, branja in pisanja datotek, kot so besedilne (.txt) datoteke.





Datoteke so v sodobnem svetu pomembne sestavine našega vsakdana. Besedilne datoteke so uporabne za shranjevanje strukturiranih človeku berljivih podatkov brez uporabe zunanje programske opreme ali baz podatkov.





MAKEUSEOF VIDEO DNEVA

Če se sprašujete, kako bi lahko začeli manipulirati z besedilnimi datotekami v Go, je ta članek pravo mesto za vas.





kako vedeti, kdo me je blokiral na facebooku

Paket bufio v Go

The bufio paket, ki je del Gojeve standardne knjižnice, se uporablja za medpomnilniške vhodne in izhodne operacije, od tod tudi ime. The bufio paket temelji na io.Reader in io.Pisatelj vmesniki, ki se v veliki meri uporabljajo pri izvajanju večine standardnih paketov Go.

The bufio paket gre še korak dlje z implementacijo medpomnjenja, zaradi česar je uporaben za IO operacije, ki vključujejo besedilne podatke.



kaj storiti s 3D tiskalnikom

Za uporabo bufio paket v vašem programu, ga morate uvoziti skupaj z drugimi paketi.

import ( 
"fmt"
"bufio"
)

Verjetno ste slišali, ko ste začel z Go da ima vse, kar lahko potrebujete kot programer. Za neposredno komunikacijo z vašim operacijskim sistemom obstaja paket imenovan ti ki zagotavlja funkcije, neodvisne od platforme.





The ti in bufio paketi naredijo manipulacijo besedilnih datotek neverjetno preprosto.

Čeprav velika večina ti Funkcije paketa so podobne sistemu Unix, vse uporabljajo slog obravnavanja napak Go, kar olajša branje sporočil o napakah in kodo za odpravljanje napak.





zaslon je obrnjen navzdol v sistemu Windows 10

Torej, kako manipulirate z datotekami, ki vsebujejo besedilo v Go?

Kako brati podatke iz besedilne datoteke

Če želite prebrati podatke iz besedilnih datotek, morate poklicati ti paketi Odprto() funkcija, ki kot parameter sprejme ime datoteke za branje. Druga metoda za pridobitev datoteke je uporaba Odpri datoteko() funkcijo.

Glavna razlika med Odprto() in Odpri datoteko() je v njihovem izvajanju. Odprto() odpre datoteko v načinu samo za branje (z SAMO O_RD zastava), medtem ko Odpri datoteko() daje večjo prilagodljivost s sprejetjem treh parametrov, in sicer:

  • Ime datoteke
  • Način odpiranja datoteke: veljavni načini odpiranja datoteke so prikazani v spodnji tabeli.
    Zastava Pomen
    SAMO O_RD Odpre datoteko v načinu samo za branje
    O_NAROBE Odpre datoteko v načinu samo za pisanje
    O_RDWR Odpre datoteko v načinu branja in pisanja
    O_APPEND Med pisanjem doda podatke v datoteko
    O_USTVARI Ustvari novo datoteko, če nobena ne obstaja
    O_EXCL Uporablja se z O_CREATE za označevanje, da je treba datoteko ustvariti le, če ne obstaja
    O_SYNC Odpre datoteko za sinhroni V/I
    O_TRUNC Odrežite datoteko ob odprtju, če je mogoče
  • Dovoljenja za datoteke: Enako kot pri dovoljenja za datoteke v Linuxu uporablja se za določanje pravil za dostop do datotek, npr. 0777 za dodelitev dovoljenj za branje, pisanje in izvajanje vsem vrstam uporabnikov.

Spodnja koda prikazuje, kako prebrati podatke iz besedilne datoteke v Go z uporabo os.Open() , in Scan() ki v tem primeru teče v a Pojdi na zanko .

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)
}
}

Ko zaženete zgornjo kodo z pojdi zaženi filename.go , ustvari rezultat, prikazan spodaj:

  Izhod programa za branje besedila iz datoteke