perl | Abrir y leer un archivo

Un identificador de archivo es una estructura interna de Perl que asocia un archivo físico con un nombre. Todos los identificadores de archivo tienen acceso de lectura/escritura, por lo que una vez que se adjunta el identificador de archivo a un archivo, se puede realizar la lectura/escritura. Sin embargo, el modo en que se abre el identificador de archivo debe especificarse al asociar un identificador de archivo.
 

Abrir un archivo

 
La función Abrir se utiliza para abrir un archivo nuevo o un archivo existente.

Sintaxis: abrir IDENTIFICADOR DE ARCHIVO, VAR

Aquí FILEHANDLE es el identificador devuelto por la función de apertura y VAR es la expresión que tiene el nombre del archivo y el modo de abrir el archivo.
La siguiente tabla muestra los modos en los que se puede abrir un archivo y acceder a varias operaciones.

Modo Descripción
r o < Acceso de solo lectura
w o > Crea, escribe y trunca
un o >> Escribe, agrega y crea
r+ o +< Lee y escribe
w+ o +> Lee, escribe, crea y trunca
a+ o +>> Lee, escribe, agrega y crea

 

leyendo un archivo

 
Una vez que se asigna un IDENTIFICADOR DE ARCHIVO a un archivo, se pueden realizar varias operaciones como leer, escribir y agregar. Hay varias maneras diferentes de leer un archivo.

  • Uso de un operador de manejo de archivos
  • Usando la función getc
  • Usando la función de lectura
  • El operador FileHandle
    El método principal para leer la información de un identificador de archivo abierto es mediante el operador < > . Cuando se usa el operador < > en un contexto de lista, devuelve una lista de líneas del identificador de archivo especificado. El siguiente ejemplo lee una línea del archivo y la almacena en el escalar.

    Deje que el contenido del archivo «GFG.txt» sea el siguiente:

    GeeksforGeeks
    Hello Geek
    Geek a revolution
    Geeks are the best
    

    Ejemplo: GFG.pl

    # Opening the file 
    open(fh, "GFG.txt") or die "File '$filename' can't be opened";
      
    # Reading First line from the file
    $firstline = <fh>;
    print "$firstline\n";

    Producción :

  • Función
    getc La función getc devuelve un solo carácter del IDENTIFICADOR DE ARCHIVO especificado, o STDIN si no se especifica ninguno

    Sintaxis: getc IDENTIFICADOR DE ARCHIVO

    # Opening the file 
    open(fh, "GFG.txt") or die "File '$filename' can't be opened";
       
    # Reading First char from the file
    $firstchar = getc(fh);
    print "$firstchar\n";

    Producción:

    Si hubo un error o el identificador de archivo está al final del archivo, devuelve undef.

  • Función de
    lectura La función de lectura se utiliza para leer datos binarios de un archivo mediante el identificador de archivo.

    Sintaxis
    leer IDENTIFICADOR DE ARCHIVO, ESCALAR, LONGITUD, DESPLAZAMIENTO
    leer IDENTIFICADOR DE ARCHIVO, ESCALAR, LONGITUD

    Aquí, LONGITUD representa la longitud de los datos que se leerán y los datos se colocan al comienzo de ESCALAR si no se especifica DESPLAZAMIENTO. De lo contrario, los datos se colocan después de los bytes de OFFSET en ESCALAR. Si la lectura del archivo es exitosa, la función devuelve el número de bytes leídos, cero al final del archivo o undef si hubo un error.

  •  

    Lectura de varias líneas a la vez

     
    El ejemplo que se muestra a continuación lee el contenido del archivo especificado por filehandle hasta que llega al final del archivo (EOF).

    Ejemplo: Archivo.pl

    # Opening the file
    open(FH, "GFG.txt")or die "Sorry!! couldn't open";
    print "Reading file \n";
      
    # Reading the file till FH reaches EOF
    while(<FH>)
    {
        # Printing one line at a time
        print $_;
    }
    close;

    Producción :

     

    Manejo de excepciones en archivos

     
    Hay dos formas en que se puede manejar la excepción

    • Lanzar una excepción si el archivo no se puede abrir
    • Dar una advertencia si el archivo no se puede abrir y continuar ejecutándose
    • Lanzar una excepción
      Cuando no se pudo asignar a filehandle un puntero de archivo válido en ese momento, die se ejecuta imprimiendo el mensaje y elimina el programa actual.
      Ejemplo :

      # Initializing filename 
      $filename = 'GFG1.txt';
        
      # Prints an error and exits if file not found
      open(fh, '<', $filename) or die "Couldn't Open file $filename";

      Producción:

      El código anterior imprime un error si no se encuentra el archivo y sale del código.

    • Dar una advertencia
      Cuando no se pudo asignar a filehandle un puntero de archivo válido, simplemente imprime un mensaje de advertencia usando la función de advertencia y sigue ejecutándose.
      Ejemplo :

      # Initializing filename
      $filename = 'GFG.txt';
      # Opening a file and reading content
      if(open(fh, '<', $filename))
      {
          while(<fh>)
          {
              print $_;
          }
      }
        
      # Executes if file not found
      else
      {
        warn "Couldn't Open a file $filename";
      }

      Producción:

Publicación traducida automáticamente

Artículo escrito por rupanisweety y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *