Una guía para trabajar con archivos de texto en Go

Una guía para trabajar con archivos de texto en Go

Como lenguaje de programación, Go tiene una amplia gama de funciones integradas, incluida la capacidad de crear, leer y escribir archivos como archivos de texto (.txt).





Los archivos son componentes importantes de nuestra vida diaria en el mundo moderno. Los archivos de texto son útiles para almacenar datos estructurados legibles por humanos sin el uso de software o bases de datos externos.





MAKEUSEOF VÍDEO DEL DÍA

Si se pregunta cómo podría comenzar a manipular archivos de texto en Go, este artículo es el lugar adecuado para usted.





cosas divertidas para hacer en el trabajo cuando estás aburrido

El paquete bufio en Go

los bufio El paquete, que es parte de la biblioteca estándar de Go, se usa para operaciones de entrada y salida almacenadas en búfer, de ahí el nombre. los bufio el paquete se basa en el Lector io. y io.escritor interfaces, que se utilizan ampliamente en la implementación de la mayoría de los paquetes estándar de Go.

los bufio El paquete va un paso más allá al implementar el almacenamiento en búfer, lo que lo hace útil para las operaciones de E/S que involucran datos textuales.



Usar el bufio paquete en su programa, debe importarlo junto con otros paquetes.

import ( 
"fmt"
"bufio"
)

Probablemente escuchaste cuando Empecé con Go que viene con todo lo que podrías necesitar como programador. Para la comunicación directa con su sistema operativo, existe un paquete llamado que proporciona funciones independientes de la plataforma.





cómo ver videos que me gustan en youtube

los y bufio Los paquetes hacen que la manipulación de archivos de texto sea increíblemente simple.

Aunque la gran mayoría de los Las funciones del paquete son similares a las de Unix, todas emplean el estilo Go de manejo de errores, lo que simplifica la lectura de mensajes de error y el código de depuración.





qué hacer con los altavoces antiguos

Entonces, ¿cómo manipula archivos que contienen texto en Go?

Cómo leer datos de un archivo de texto

Para leer datos de archivos de texto, debe llamar al paquete Abierto() función, que acepta como parámetro el nombre del archivo a leer. Otro método para obtener el archivo es usando el Abrir documento() función.

La gran diferencia entre Abierto() y Abrir documento() está en su ejecución. Abierto() abre un archivo en modo de sólo lectura (con el O_RDONLY bandera), mientras Abrir documento() da más flexibilidad al aceptar tres parámetros, a saber:

  • Nombre del archivo
  • Modo de apertura de archivos: Los modos de apertura de archivos válidos se muestran en la siguiente tabla.
    Bandera Sentido
    O_RDONLY Abre el archivo en modo de solo lectura
    O_MAL Abre el archivo en modo de solo escritura
    O_RDWR Abre el archivo en modo lectura-escritura
    O_APPEND Agrega datos al archivo al escribir
    O_CREAR Crea un nuevo archivo si no existe ninguno
    O_EXCL Usado con O_CREATE, para indicar que el archivo solo debe crearse si no existe
    O_SYNC Abre el archivo para E/S síncrona
    O_TRUNC Trunca el archivo al abrirlo, si es posible
  • Permisos de archivo: Igual que el bits de permiso de archivo en Linux se utiliza para especificar reglas de acceso a archivos, por ejemplo, 0777 para otorgar permisos de lectura, escritura y ejecución a todos los tipos de usuarios.

El siguiente código muestra cómo leer datos de un archivo de texto en Go usando os.Open() , y Escanear() que en este caso, se ejecuta en un ir por bucle .

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

Cuando ejecutas el código anterior con ve a ejecutar filename.go , produce la salida que se muestra a continuación:

  Salida del programa para leer texto del archivo