Dodaj nowy wiersz w pliku tekstowym z określonym warunkiem Python

0

Pytanie

Próbowałem zaktualizować pewien plik tekstowy nowego wiersza w nowej linii na końcu pliku za pomocą Pythona. Sam plik może mieć pusty wiersz na końcu, a czasem nie. Próbowałem zrobić to następnego scenariusza.

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

newRow-to zmienna, która zawiera nowy tekst, który zostanie dodany. Działa to doskonale, jeśli ostatni wiersz pliku nie jest pusta. Jednak nie jest to prawdą, w ostatnim wierszu pliku jest puste miejsce. W tym przypadku w pliku będzie pusta przestrzeń między ostatnim wierszem i nowym wierszem.

aaaa
bbbb

newRow

Myślę, że pytanie, jak mogę sprawdzić, czy ostatni wiersz pliku pusty ciąg znaków. Okazało się, że z pomocą readlines() można zapisać każdy wiersz pliku tekstowego do listy, a następnie sprawdzić ostatnią linię. Ale nie wiem, jak to zrobić, jeśli używam "open". W ten sposób, w końcu zamierzony efekt będzie następny dla dowolnych plików tekstowych

aaaa
bbbb
newRow

Jak mogę osiągnąć tego wyniku?

Z góry dziękuję

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

Najlepsza odpowiedź

0

Spróbuj to:

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

Thanks..it może zadziałać w moim przypadku..
Fadri

W innych językach

Ta strona jest w innych językach

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