En este artículo, vamos a ver cómo eliminar las líneas específicas de un archivo usando Python
A lo largo de este programa, como ejemplo, utilizaremos un archivo de texto llamado meses.txt sobre el que se realizarían varias operaciones de borrado.
Método 1: Eliminar una línea usando una posición específica
En este método, el archivo de texto se lee línea por línea usando readlines(). Si una línea tiene una posición similar a la posición que se va a eliminar, no se escribe en el archivo de texto recién creado.
Ejemplo:
Python3
# deleting a line # based on the position # opening the file in # reading mode try: with open('months.txt', 'r') as fr: # reading line by line lines = fr.readlines() # pointer for position ptr = 1 # opening in writing mode with open('months.txt', 'w') as fw: for line in lines: # we want to remove 5th line if ptr != 5: fw.write(line) ptr += 1 print("Deleted") except: print("Oops! something error")
Producción:
Deleted
Se escribió ‘5 de mayo’ en la quinta línea, que se eliminó como se muestra a continuación:
Método 2: Eliminar una línea usando un texto que coincida exactamente con la línea
En este método, después de leer el archivo, cada línea se verifica si coincide exactamente con el texto dado. Si no coincide, entonces se escribe en un nuevo archivo.
Python3
# deleting a line on the basis # of a matching text (exactly) # we want to remove a line # with text = '8-August' try: with open('months.txt', 'r') as fr: lines = fr.readlines() with open('months_2.txt', 'w') as fw: for line in lines: # strip() is used to remove '\n' # present at the end of each line if line.strip('\n') != '8-August': fw.write(line) print("Deleted") except: print("Oops! something error")
Producción:
Deleted
La línea que tiene exactamente ‘8 de agosto’ se eliminó como se muestra:
Método 3: Usar lógicas hechas a la medida
Ejemplo 1: Eliminación de líneas que contienen un patrón específico
Aquí, se eliminan las líneas que contienen el patrón de string especificado. El patrón puede no ser necesariamente la línea exacta completa.
Python3
# deleting a line matching # a specific pattern or # containing a specific string # we want to delete a line # containing string = 'ber' try: with open('months.txt', 'r') as fr: lines = fr.readlines() with open('months_3.txt', 'w') as fw: for line in lines: # find() returns -1 # if no match found if line.find('ber') == -1: fw.write(line) print("Deleted") except: print("Oops! something error")
Producción:
Deleted
Se han eliminado todas las líneas que contienen el patrón ‘ber’, como ‘ 9 de septiembre’, ’10 de octubre’, ’11 de noviembre’, ’12 de diciembre’ .
Ejemplo 2: Eliminación de líneas con la condición
Si tenemos como condición que las líneas de nuestro archivo deben tener una longitud mínima. Entonces, el siguiente ejemplo muestra cómo eliminar líneas que no tienen una longitud mínima especificada.
Python3
# deleting all the lines that are # not having the minimum length # excluding the newline '\n' character # let the min_len = 7 try: with open('months.txt', 'r') as fr: lines = fr.readlines() min_len = 7 with open('months_4.txt', 'w') as fw: for line in lines: if len(line.strip('\n')) >= min_len: fw.write(line) print("Deleted") except: print("Oops! something error")
Producción:
Deleted
Se eliminan todas las líneas que no tienen una longitud mayor o igual a 7:
Publicación traducida automáticamente
Artículo escrito por riyaaggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA