2012-05-25 3 views
1

Можно создать дубликат:
Editing specific line in text file in pythonУдаление первой строки текстового файла в питоне

Я пишу программное обеспечение, которое позволяет пользователям записывать данные в текстовый файл. Однако я не уверен, как удалить первую строку текстового файла и переписать строку. Я хочу, чтобы пользователь мог обновить первую строку текстового файла, нажав на кнопку и введя что-то, но для этого требуется удалить и написать новую строку в качестве первой строки, которую я не знаю, как реализовать. Любая помощь будет оценена по достоинству.

Edit:

Так что я искал первую строку файла и попытался написать еще одну строку, но это не удаляет предыдущую строку.

file.seek(0) 
file.write("This is the new first line \n") 

ответ

3

Вы не описали, как вы открыли файл для начала. Если вы использовали file = open(somename, "a"), файл не будет усечен, но новые данные будут записаны в конце (даже после поиска большинства, если не всех современных систем). Вам нужно будет открыть файл с помощью «r +»)

Но ваш пример предполагает, что строка, которую вы пишете, имеет точно такую ​​же длину, что и пользователь. В файлах нет строковой организации, просто байты, некоторые из которых указывают на завершение строки. Ват вам нужно сделать, это использовать временный файл или временный буфер в памяти для всех строк, а затем записать строки с первым замененным.

Если что-то помещается в памяти (который я предполагаю, так как некоторые пользователи собираются набирать столько он не подходит), вы должны быть в состоянии сделать:

lines = open(somename, 'r').readlines() 
lines[0] = "This is the new first line \n" 
file = open(somename, 'w') 
for line in lines: 
    file.write(line) 
file.close() 
Смежные вопросы