Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
2 / 2 / 0
Регистрация: 09.02.2022
Сообщений: 34

Удаление повторяющихся строк в одном и том же файле

09.02.2022, 11:07. Показов 5025. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с кодом для удаения дублей строк.

НО надо чтобы он удалял и сохранял в одном и томже файле!

открыл файл.тхт
удалил в нем все дублирующиеся строки
сохранил данные в этотже файл.тхт
завершил работу
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.02.2022, 11:07
Ответы с готовыми решениями:

Удаление повторяющихся строк в файле
Aлгоритм удаления повторяющихся строк из файла подскажите, ато недогоняю. Как именно сравнить строки в файле, т.е. у меня получается...

Удаление повторяющихся строк в txt файле, с учетом производительности (в больших файлах)
Добрый день! Помогите пожалуйста. Задача: удаление дубликатов в очень больших текстовых фалах(Миллион записей). Как реализовать с...

Шифрование и дешифрование XML в одном и том же файле
Доброго времени суток! Есть рабочий код, шифрующий XML документ. проблема в том что когда происходит шифрование, то шифрованные данные...

13
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,293
09.02.2022, 11:26
как вариант без питона, установить радиокнопку регулярное выражение
^(.*?)$\s+?^(?=.*^\1$)
в Блокноте ++ не?
0
2 / 2 / 0
Регистрация: 09.02.2022
Сообщений: 34
09.02.2022, 11:37  [ТС]
нужно на питоне

Добавлено через 5 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TARGET_FILE = "file.txt"
 
 
f=open(TARGET_FILE,'r', encoding='utf-16-le')
l = [line.strip() for line in f]
unique=[]
[unique.append(item) for item in l if item not in unique]
if unique[0]:
    print('\n jjj')
f.close()
 
 
 
filename2 = target = 'file.txt'
fw = open(filename2, 'w', encoding='utf-16-le')
for index in unique:
    fw.write(index + '\n')
    fw.close
вроде заработало, но! почему он не видит первую строчку в текстовом файле, как исправить?
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
09.02.2022, 12:10
hpasus, если порядок строк не важен
Python
1
2
3
4
5
6
7
8
9
10
file_name = r'file.txt'
non_double_str_set = set()
input_file = open(file_name)
for line in input_file:
    non_double_str_set.add(line)
input_file.close()
output_file = open(file_name, 'w')
for set_str in non_double_str_set:
    output_file.write(set_str)
output_file.close()
0
2 / 2 / 0
Регистрация: 09.02.2022
Сообщений: 34
09.02.2022, 12:16  [ТС]
Не работает ваш код

Добавлено через 56 секунд
он все пишет в строчку все данные и ни удаляет повторы
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
09.02.2022, 12:22
hpasus, значит тебе не повезло((. у меня все работает и удаляет)).

Добавлено через 2 минуты
делай стрипы, когда в сет пишешь, а когда в файл, не забывай + "\n", к строкам.
0
2 / 2 / 0
Регистрация: 09.02.2022
Сообщений: 34
09.02.2022, 12:52  [ТС]
Спасибо) но я всеравно ниче ваще не понял) я прям новичек новичек в этом деле...
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
09.02.2022, 13:02
Лучший ответ Сообщение было отмечено hpasus как решение

Решение

Цитата Сообщение от hpasus Посмотреть сообщение
ниче ваще не понял
та и забей! живи спокойно, продавай Феррари))
0
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,293
10.02.2022, 11:34
Цитата Сообщение от hpasus Посмотреть сообщение
нужно на питоне
ок:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# удаление дубликатов строк из файла
import datetime
 
дата_начало = datetime.now()
f1 = 'd:/22222222222222222.txt'
f2 = 'd:/33333333333333333.txt'
 
with open(f1, "rt") as f1, open(f2, "r+t") as f2:
    f2_list = f2.readlines()
    for line in f1:
        if line in f2_list:
            f2_list.remove(line)
            print(f"Удалён дубликат: {line}")
    f2.seek(0)
    f2.truncate(0)
    f2.write("\n".join(f2_list))
дата_конец = datetime.now()
print(f'''Конец выполнения программы, сравнения двух файлов, удаления дубликатов: {дата_конец}
Время выполнения программы: {int((дата_конец - дата_начало).total_seconds())} сек.
{str((дата_конец - дата_начало)).split('.')[0]}''')
хотя интересен вариант с регуляркой, может кто подскажет))
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.02.2022, 11:49
Какой-то хреновней страдаете...
Python
1
2
3
4
with open('in.txt', 'r') as f:
    lst = set(f.readlines())
with open('in.txt', 'w') as f:
    f.write(''.join(lst))
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
10.02.2022, 12:28

Не по теме:

Цитата Сообщение от iSmokeJC Посмотреть сообщение
страдаете...
не глупее некоторых)). вообще, что с тобой случилось, Бро?! ты был года 2 назад идеалом человечности...

у меня твое решение склевало несколько строк, причем рандомно!
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.02.2022, 16:52

Не по теме:

Цитата Сообщение от Aviz__ Посмотреть сообщение
вообще, что с тобой случилось, Бро?! ты был года 2 назад идеалом человечности...
Широко распространенное заблуждение


Цитата Сообщение от Aviz__ Посмотреть сообщение
рандомно
Ну дык сет - неупорядочен
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
10.02.2022, 17:00
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Ну дык сет - неупорядочен
я не против)).

Не по теме:

Цитата Сообщение от iSmokeJC Посмотреть сообщение
Широко распространенное заблуждение
классика жанра, молодец! но, со стороны виднее, главное не падай духом добра! и это пройдет...

0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
10.02.2022, 17:04
Сохраняет порядок:
Python
1
2
3
4
5
with open("input.txt") as input_:
    result = dict.fromkeys(input_).keys()
    
with open("input.txt", "w") as output:
    print(*result, file=output, sep="")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2022, 17:04
Помогаю со студенческими работами здесь

Удаление повторяющихся строк
Здравствуйте. Необходимо написать SQL-запрос на удаление всех строк, встречающихся более одного раза. К примеру, определенная строка...

Удаление повторяющихся строк
Доброе время суток. есть таблица в не данные: col1-col2-col3---col4 42--- S--- 57--- 30.01.2016 10:54:41 ...

Удаление повторяющихся строк
Категорическое здрям! Есть файл, в котором строки зачетверены. Подскажите, пожалуйста, как удалить три строки из четырех. Файл...

Удаление повторяющихся строк
Всем привет друзья. Нужна ваша помощь в решении одной проблемы. На хостинге есть файл представляющий собой форму: abc | Text | Text ...

Удаление повторяющихся строк
Доброго времени суток, пытаюсь удалить повторяющиеся строки по ID вот так: DELETE from `houses` WHERE `id` = (SELECT DISTINCT `id`...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru