Как удалить одну строку из TXT-файла, который содержит часть той же информации в других строках
...
63935.20180626113948_1.jpg 579 354 1 470 354 470 416 579 416 человек 63935.20180626113948_1.jpg 793 312 1 959 312 959 459 793 459 животных 65525.20180622214317_1.jpg 637 308 1 537 308 537 569 637 569 человек 65557.20180625043513_1.jpg 1 278 433 138 433 138 625 278 625 Животное 65557.20180625043513_1.jpg 1 738 159 495 159 495 28 738 28 человек
...
это часть строк в этом текстовом файле, жирная строка показывает, что для одного и того же файла jpg есть две разные аннотации.
Есть ли в любом случае удалить одну из этих повторяющихся строк и просто оставить другую.
сделать список таким:
...
63935.20180626113948_1.jpg 1 793 312 959 312 959 459 793 459 животных 65525.20180622214317_1.jpg 1 637 308 537 308 537 569 637 569 человек
65557.20180625043513_1.jpg 1 738 159 495 159 495 28 738 28 человек
...
1 ответ
Как вы не упомянули, какие строки вы хотите сохранить в text file
(последний или первый). Я предполагаю, что вам нужен последний. Вы можете использовать dictionary
и сохраните имя файла изображения (63935.20180626113948_1.jpg) в качестве ключа и обновите ключи, когда вы читаете файл. Как только словарь обновлен, вы можете записать его содержимое обратно в тот же file
,
with open('/path/to/file') as fp:
lines = fp.readlines()
temp_dict = {}
for line in lines:
line_split = line.split()
temp_dict[line_split[0]] = line
with open('/path/to/file') as fp:
for key in temp_dict:
fp.write(temp_dict[key])
fp.write('\n')