Скажем, у меня есть текстовый документ. У меня есть строка. Я хочу удалить текст в этой строке и заменить его другим текстом. Как мне это сделать? В документах об этом ничего нет, заранее спасибо!
Удаление строки из текста
Ответы (2)
Непроверенный: читает строки файла с помощью .readlines(), а затем заменяет индекс номера строки в этом списке. Наконец, он объединяет строки и записывает их в файл.
with open("file", "rw") as fp:
lines = fp.readlines()
lines[line_number] = "replacement line"
fp.seek(0)
fp.write("\n".join(lines))
person
Ramchandra Apte
schedule
16.03.2014
Несмотря на то, что она не проверена, сама логика должна работать, даже если фактический код может не работать, поэтому +1.
- person Truerror; 16.03.2014
Если замена сократит содержимое, не останется ли часть исходного файла в конце, потому что он не был перезаписан?
- person three_pineapples; 16.03.2014
@three_pineapples Думаю, ты прав. Вы, вероятно, захотите удалить оригинал вместо поиска, но основная идея остается, поэтому +1.
- person Oliver; 16.03.2014
Хотя в этом ответе нет ничего плохого, на самом деле он не имеет отношения к вопросу (который касается управления редактором qscintilla).
- person ekhumoro; 16.03.2014
Чтобы заменить строку в QScintilla, вам нужно сначала выбрать строку, например:
# as an example, get the current line
line, pos = editor.getCursorPosition()
# then select it
editor.setSelection(line, 0, line, editor.lineLength(line))
Как только строка выбрана, вы можете заменить ее на:
editor.replaceSelectedText(text)
Если вы хотите заменить строку другой строкой (которая будет удалена в процессе):
# get the text of the other line
text = editor.text(line)
# select it, so it can be removed
editor.setSelection(line, 0, line, editor.lineLength(line))
# remove it
editor.removeSelectedText()
# now select the target line and replace its text
editor.setSelection(target, 0, target, editor.lineLength(target))
editor.replaceSelectedText(text)
person
ekhumoro
schedule
16.03.2014
readline
для просмотра каждой строки в исходном файле, выполнить поиск/замену и записать их в место назначения с помощьюwriteline
? - person metatoaster   schedule 16.03.2014