Přidat nový řetězec v textovém souboru s určitou podmínkou Python

0

Otázka

Snažil jsem se aktualizovat některé textový soubor s novým řetězec na nový řádek na konci souboru s Python. Samotný soubor může mít prázdný řádek na konci a někdy ne. Zkoušel jsem následující skript, aby se to.

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

newRow je proměnná obsahující nový text, který bude přidán. To funguje v pořádku, pokud poslední řádek soubor není prázdný. Nicméně, toto není správné, na posledním řádku souboru je prázdný prostor. V tomto případě, soubor bude mít prázdný prostor mezi poslední řádek a newRow.

aaaa
bbbb

newRow

Jsem host otázka je, jak mohu zkontrolovat, zda poslední řádek souboru je prázdný řádek. Zjistil jsem, že pomocí readlines() lze uložit každý řádek textového souboru do seznamu, pak můžete zkontrolovat poslední řadě. Ale nevím, jak to udělat, pokud jsem použít 'otevřít'. Takže na konci, zamýšlený výsledek, je následovat pro všechny textové soubory

aaaa
bbbb
newRow

Jak lze dosáhnout tohoto výsledku?

děkuji předem

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

Nejlepší odpověď

0

Zkuste toto:

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

Díky..to může fungovat v mém případě..
Fadri

V jiných jazycích

Tato stránka je v jiných jazycích

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