Agregar nueva cadena en un archivo de texto con ciertas condiciones de Python

0

Pregunta

Traté de actualizar ciertos archivo de texto con la nueva cadena en una nueva fila al final de el archivo con Python. El archivo puede tener línea en blanco al final y a veces no. He intentado de la siguiente secuencia de comandos para hacer esto.

 with open(fname, 'a') as file:
     file.write("\n"+newRow)

newRow es una variable que contiene el nuevo texto que se añadirá. Funciona bien si la última fila del archivo no está vacío. Sin embargo, esto no es correcto en la última fila del archivo es un espacio vacío. En este caso, el archivo tendrá un espacio vacío entre la última fila y newRow.

aaaa
bbbb

newRow

He invitado a la pregunta es ¿cómo puedo comprobar si la última fila del archivo está vacío de la línea. He encontrado que el uso readlines() puede almacenar cada fila del archivo de texto en una lista, a continuación, puede comprobar el último de la fila. Pero no sé cómo hacer esto si yo uso 'abrir'. Así que al final, el resultado deseado es como seguir para cualquier archivos de texto

aaaa
bbbb
newRow

¿Cómo puedo llegar a este resultado?

gracias de antemano

editing file python text
2021-11-23 15:42:14
1

Mejor respuesta

0

Intente esto:

with open("prova.txt", "r+") as file:
    lines = file.readlines()
    # this will put the seek pointer to the end of file
    file.seek(0,2)

    if lines[len(lines) - 1] == '\n':
        file.write("newRow")
    else:
        file.write("\nnewRow")
2021-11-23 16:17:47

Gracias..es que puede funcionar en mi caso..
Fadri

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................