2016-10-30 4 views
1

В Python 2.7, я пишу строку в файл, используя ..Python 2.7 удаления строки из текстового файла

f.write('This is a test') 

Как я могу удалить эту строку? В текстовом файле будет только одна строка, так что я должен/должен удалить файл и создать новый?

Или есть способ удалить строку, которую я добавил?

+2

https://docs.python.org /2/library/stdtypes.html#file.truncate - использовать f.truncate() –

ответ

0

В Python вы не можете удалить текст из файлов. Вместо этого вы можете записать в файл.

Функция записи эффективно удаляет все, что находится в файле, и сохраняет файл с строкой, передаваемой в качестве аргументов.

Пример

open_file=open("some file","w") 
open_file.write("The line to write") 

Теперь файл имеет строку «Линия писать» как содержание.

Редактировать Функция записи более точно записывает с того места, где находится курсор. Когда вы открываете в режиме w, курсор находится в начале файла и записывает все в файле.

Thanks bli для указания этого.

+0

Точнее, это комбинация открытия (в режиме «w») и записи. Если вы напишете в уже открытом файле, это добавит текст к тому, что вы написали, начиная с 'open'. – bli

1

Вы можете удалить файл и создать новый или усечь существующий файл

# the original file 
with open("test.txt", "w") as f: 
    f.write("thing one") 

# delete and create a new file - probably the most common solution 
with open("test.txt", "w") as f: 
    f.write("thing two") 

    # truncate an existing file - useful for instance if a bit 
    # of code as the file object but not file name 
    f.seek(0) 
    f.truncate() 
    f.write("thing three") 

# keep a backup - useful if others have the old file open 
os.rename("test.txt", "test.txt.bak") 
with open("test.txt", "w") as f: 
    f.write("thing four") 

# making live only after changes work - useful if your updates 
# could fail 
with open("test.txt.tmp", "w") as f: 
    f.write("thing five") 
os.rename('test.txt.tmp', 'test.txt') 

Что лучше? Все они ... в зависимости от других целей дизайна.

0

Это лучшая практика, чтобы всегда использовать with при открытии файла, чтобы убедиться, что ваш файл всегда будет закрыт, даже если вы не вызываете close()

with open('your_file', 'w') as f: 
    f.write('new content') 
Смежные вопросы