Я создаю программу для обновления текстового файла со списком городов:
New York City
New York
USA
Newark
New Jersey
USA
Toronto
Ontario
Canada
Если я хочу удалить детали для Ньюарка, используя скрипт bash, я могу сделать это:
sed -i "/Newark/,+3d" test.txt
И это оставило бы меня со следующим:
New York City
New York
USA
Toronto
Ontario
Canada
Однако я хотел бы сделать это в Python, и у меня возникли проблемы с выяснением как удалить следующие строки, после строки с Newark. Я могу удалить Newark:
with open('test.txt') as oldfile, open('test2.txt', 'w') as newfile:
for line in oldfile:
if not "Newark" in line:
newfile.write(line)
os.remove('test.txt')
os.rename('test2.txt', 'test.txt')
Но это никак не влияет на оставшиеся две строки и создает новый файл, который я затем должен использовать для замены исходного файла.
- Как могу ли я go подражать функциональности команды sed с помощью Python?
- Можно ли как-либо выполнить редактирование в файле, поэтому мне не нужно создавать и заменять файл каждый раз, когда мне нужно удалить из это?