Add new string într-un fișier text cu o anumită condiție Python

0

Problema

Am încercat să actualizeze anumite fișier text cu noul șir într-un rând nou la sfârșitul fișierului cu Python. Fișierul în sine poate avea o linie goală la sfârșitul și uneori nu. Am încercat următorul script pentru a face acest lucru.

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

newRow este o variabilă care conține text nou care va fi adăugat. Aceasta funcționează bine dacă ultimul rând de fișier nu este gol. Cu toate acestea, acest lucru nu este corect în ultimul rând din fișier este un spațiu gol. În acest caz, fișierul va avea un spațiu gol între ultimul rând și newRow.

aaaa
bbbb

newRow

Am invitat întrebarea este cum pot verifica dacă ultimul rând de fișier este linie goală. Am constatat că, folosind readlines() poate stoca fiecare rând din fișierul text într-o listă, apoi pot verifica ultimul rând. Dar nu știu cum să facă acest lucru, dacă am folosi cu open'. Deci, la final, rezultatul dorit este după cum urmează pentru orice fișiere text

aaaa
bbbb
newRow

Cum pot ajunge la acest rezultat?

vă mulțumesc în avans

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

Cel mai bun răspuns

0

Încercați acest lucru:

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

Multumesc..se poate lucra în cazul meu..
Fadri

În alte limbi

Această pagină este în alte limbi

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