perl | Escribir en un archivo

Un identificador de archivo es una variable que se utiliza para leer y escribir en un archivo. Este identificador de archivo se asocia con el archivo.

Para escribir en el archivo, se abre en modo de escritura como se muestra a continuación:

open (FH, ‘>’, “filename.txt”);

Si el archivo existe, trunca el contenido anterior del archivo con el contenido nuevo. De lo contrario, se creará un nuevo archivo y se agregará contenido.

función imprimir()

La función print() se usa para escribir contenido en un archivo.

Sintaxis: imprimir string de identificador de archivo

Aquí, el identificador de archivo está asociado al archivo en el momento de abrirlo y la string contiene el contenido que se escribirá en el archivo.

Ejemplo :

# Opening file Hello.txt in write mode
open (fh, ">", "Hello.txt");
  
# Getting the string to be written
# to the file from the user
print "Enter the content to be added\n";
$a = <>;
  
# Writing to the file
print fh $a;
  
# Closing the file
close(fh) or "Couldn't close the file"; 

Antes de escribir en el archivo:

Ejecutando código para escribir:

Archivo actualizado:

Así es como funciona el programa:
Paso 1: Abrir el archivo Hello.txt en modo escritura.
Paso 2: obtener el texto del teclado de entrada estándar.
Paso 3: escribir la string almacenada en ‘$a’ en el archivo señalado por el identificador de archivo ‘fh’
Paso 4: cerrar el archivo.
 
Copiar contenido de un archivo a otro:

Antes de la ejecución del código:
Archivo de origen:

Archivo de destino:

Ejemplo:
el siguiente ejemplo lee el contenido del archivo de origen y lo escribe en el archivo de destino.

# Source File 
$src = 'Source.txt';
  
# Destination File
$des = 'Destination.txt';
  
# open source file for reading
open(FHR, '<', $src);
   
# open destination file for writing
open(FHW, '>', $des); 
   
print("Copying content from $src to $des\n");
while(<FHR>)
{
   print FHW $_; 
}
   
# Closing the filehandles
close(FHR);
close(FHW);
   
print "File content copied successfully!\n";

Código de ejecución:

Archivo de destino actualizado:

Así es como funciona el programa: –
Paso 1: Abrir 2 archivos Source.txt en modo de lectura y Destination.txt en modo de escritura.
Paso 2: leer el contenido del FHR, que es un identificador de archivo para leer contenido, mientras que FHW es un identificador de archivo para escribir contenido en un archivo.
Paso 3: Copiar el contenido con el uso de la función de impresión.
Paso 4: cierre la conexión una vez que haya terminado de leer el archivo.
 

Manejo de errores e informe de errores

Hay dos formas en que se pueden manejar los errores

  • Lanzar una excepción si el archivo no se puede abrir (Manejo de un error)
  • Dar una advertencia si el archivo no se puede abrir y continuar ejecutándose (Informe de errores)

Lanzar una excepción (usando la función Die)
Cuando no se pudo asignar un identificador de archivo válido a un identificador de archivo en ese momento, die se ejecuta imprimiendo el mensaje y elimina el programa actual.
Ejemplo :

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

En el código anterior, cuando el archivo existe, simplemente se ejecuta sin errores, pero si el archivo no existe, genera un error y el código finaliza.

Dar una advertencia (usando la función de advertencia)
Cuando no se puede asignar un identificador de archivo válido a un identificador de archivo, 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"; 
} 

Cuando el archivo existe:

Cuando el archivo no existe:

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 *