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

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

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

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

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

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

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

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

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

13
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
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__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,487
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__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,487
09.02.2022, 12:22
hpasus, значит тебе не повезло((. у меня все работает и удаляет)).

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

Решение

Цитата Сообщение от hpasus Посмотреть сообщение
ниче ваще не понял
та и забей! живи спокойно, продавай Феррари))
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
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__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,487
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__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,487
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru