Aggiungere una nuova stringa in un file di testo con una certa condizione di Python

0

Domanda

Ho provato ad aggiornare alcuni file di testo con una nuova stringa in una nuova riga alla fine del file con Python. Il file può avere di per sé riga vuota alla fine e a volte non. Ho provato il seguente script per fare questo.

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

newRow è una variabile contenente il nuovo testo che verrà aggiunto. Funziona bene se l'ultima riga del file non è vuoto. Tuttavia, questo non è corretto nell'ultima riga del file è uno spazio vuoto. In questo caso, il file avrà uno spazio vuoto tra l'ultima riga e newRow.

aaaa
bbbb

newRow

Ho ospite la domanda è: come posso controllare se l'ultima riga del file è vuoto linea. Ho trovato che l'uso di readlines() in grado di memorizzare ogni riga del file di testo in un elenco, quindi posso controllare l'ultima riga. Ma non so come fare se io uso 'open'. Così, alla fine, il risultato previsto è come seguire per tutti i file di testo

aaaa
bbbb
newRow

Come posso raggiungere questo risultato?

vi ringrazio in anticipo

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

Migliore risposta

0

Prova questo:

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

Grazie..si può lavorare nel mio caso..
Fadri

In altre lingue

Questa pagina è in altre lingue

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