Добавьте новую строку в текстовый файл с определенным условием Python

0

Вопрос

Я попытался обновить определенный текстовый файл новой строкой в новой строке в конце файла с помощью Python. Сам файл может иметь пустую строку в конце, а иногда и нет. Я попробовал сделать это по следующему сценарию.

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

newRow-это переменная, содержащая новый текст, который будет добавлен. Это прекрасно работает, если последняя строка файла не пуста. Однако это неверно, в последней строке файла есть пустое место. В этом случае в файле будет пустое пространство между последней строкой и новой строкой.

aaaa
bbbb

newRow

Я думаю, что вопрос в том, как я могу проверить, является ли последняя строка файла пустой строкой. Я обнаружил, что с помощью readlines() можно сохранить каждую строку текстового файла в список, а затем проверить последнюю строку. Но я не знаю, как это сделать, если я использую "с открытым". Таким образом, в конце концов, предполагаемый результат будет следующим для любых текстовых файлов

aaaa
bbbb
newRow

Как я могу достичь этого результата?

Заранее спасибо

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

Лучший ответ

0

Попробуйте это:

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 может сработать в моем случае..
Fadri

На других языках

Эта страница на других языках

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