¿Cómo eliminar líneas que comienzan con cualquier prefijo usando Python?

Dado un archivo de texto, lea el contenido de ese archivo de texto línea por línea e imprima solo aquellas líneas que no comiencen con un prefijo definido. También almacene esas líneas impresas en otro archivo de texto. Existen las siguientes formas en que se puede realizar esta tarea:

Método 1: Usando bucle y comienza con().

En este método, leemos el contenido del archivo línea por línea. Mientras leemos, verificamos si la línea comienza con el prefijo dado, simplemente omitimos esa línea y la imprimimos. También almacene esa línea en otro archivo de texto.

Ejemplo 1:

Supongamos que el archivo de texto desde el que se deben leer las líneas se proporciona a continuación:

Archivo de texto original  

Python3

# defining object file1 to
# open GeeksforGeeks file in 
# read mode
file1 = open('GeeksforGeeks.txt',
             'r')
  
# defining object file2 to 
# open GeeksforGeeksUpdated file
# in write mode
file2 = open('GeeksforGeeksUpdated.txt',
             'w')
  
# reading each line from original 
# text file
for line in file1.readlines():
    
     # reading all lines that do not
     # begin with "TextGenerator"
    if not (line.startswith('TextGenerator')):
        
        # printing those lines
        print(line)
          
        # storing only those lines that 
        # do not begin with "TextGenerator"
        file2.write(line)
  
# close and save the files
file2.close()
file1.close()

Producción:

Ha sobrevivido no solo cinco siglos, sino también el salto a la composición tipográfica electrónica, permaneciendo esencialmente sin cambios.

Se popularizó en la década de 1960 con el lanzamiento de hojas de Letraset que contenían pasajes de TextGenerator y, más recientemente, con software de autoedición como Albus Potter, que incluía versiones de TextGenerator.

Archivo de texto actualizado después de eliminar las líneas que comienzan con «TextGenerator»

En el ejemplo anterior, abrimos un archivo y leemos su contenido línea por línea. Verificamos si esa línea comienza con el prefijo dado usando el método beginwith() . Si esa línea comienza con «TextGenerator» , omitimos esa línea, de lo contrario imprimimos la línea y la almacenamos en otro archivo. De esta forma, podríamos eliminar líneas que comienzan con el prefijo especificado.

Método 2: Usando Regex.

En este método usamos el módulo re de python que ofrece un conjunto de metacaracteres. Los metacaracteres son caracteres con un significado especial. Para eliminar líneas que comienzan con el prefijo especificado, usamos el metacarácter «^» (comienza con)

También hacemos uso de la función re.findall() que devuelve una lista que contiene todas las coincidencias.

Archivo de texto original

Python3

# importing regex module
import re
  
# defining object file1 to open
# GeeksforGeeks file in read mode
file1 = open('GeeksforGeeks.txt',
           'r')
  
# defining object file2 to open 
# GeeksforGeeksUpdated file in
# write mode
file2 = open('GeeksforGeeksUpdated.txt','w')
  
# reading each line from original
# text file
for line in file1.readlines():
    
    # reading all lines that begin 
    # with "TextGenerator"
    x = re.findall("^Geeks", line)
      
    if not x:
        
        # printing those lines
        print(line)
          
        # storing only those lines that 
        # do not begin with "TextGenerator"
        file2.write(line)
          
# close and save the files
file1.close()
file2.close()
     

Producción:

forGeeksGeeks

Archivo de texto actualizado

En el ejemplo anterior, abrimos un archivo y leemos su contenido línea por línea. Verificamos si esa línea comienza con «Geeks» usando una expresión regular. Si esa línea comienza con «Geeks» , omitimos esa línea e imprimimos el resto de las líneas y almacenamos esas líneas en otro archivo. 

Publicación traducida automáticamente

Artículo escrito por rohanchopra96 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 *