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

Скрипт для сравнения текста

12.01.2022, 19:10. Показов 2095. Ответов 19

Студворк — интернет-сервис помощи студентам
Подскажите плиз, как правильно сделать в этом скрипте чтоб только если найдено совпадение - только тогда создавался файл out.txt и выводился текст:
print('Найдено совпадение')
а если же совпадений не найдено, то чтобы файл out.txt НЕ создавался, а текст был другой:
print('Совпадений не найдено')
Очень нужно, я вообще ноль, помогите...

Скрипт:

Python
1
2
3
4
5
6
7
8
with open("txt1.txt", "rt", encoding="utf-8") as file_handle:
    values = {*file_handle.readlines()}
 
with open("txt2.txt", "rt", encoding="utf-8") as file_handle, \
            open("out.txt", "wt", encoding="utf-8") as file_handle_out:
    for line in file_handle:
        if line in values:
            file_handle_out.write(line)
Добавлено через 29 минут
Оно то понятно, что есть уже решения, но если бы я шарил хоть немного - то уже хотя бы погуглил... Я вообще не программист, почему и прошу помочь внести правильные изменения в вышеприведенный код скрипта. Эх...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.01.2022, 19:10
Ответы с готовыми решениями:

Как вывести два графика для визуального сравнения сравнения
Как вывести два графика с данными в один для сравнения import numpy as np import matplotlib.pyplot as plt import pandas as pd from...

Скрипт для обработки текста
Добрый вечер, форумчане. Приветствую. Сижу уже третьи сутки, никак не могу придумать скрипт обработки нижеуказанного кода, с целью ...

Скрипт для копирования текста из вышедшего поста в канале телеграм
Как написать скрипт на питоне,чтобы при выходе поста в определённом канале скопировалось его содержимое в буфер обмена

19
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.01.2022, 19:14
Python
1
2
3
4
5
6
7
8
    lst = []
    for line in file_handle:
        if line in values:
            lst.append(line)
    if len(lst)==0:
        print('нет совпадений')
    else:
        file_handle_out.write('\n'.join(lst))
1
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
12.01.2022, 19:17  [ТС]
Для спеца добавить пару условий - раз плюнуть, для меня целая проблема... Помоги и я назову тебя "О, наимудрейший!", плиз...

Добавлено через 1 минуту
iSmokeJC, Этот код надо просто добавить к моему скрипту?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.01.2022, 19:20
ComZer, мне вот почему-то кажется, что даже не зная питон, можно догадаться куда именно и вместо чего нужно присунуть данный код

Добавлено через 1 минуту
Кстати, вангую - этот код будет работать не так, как ты хочешь.
0
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
12.01.2022, 19:25  [ТС]
iSmokeJC, Уже даже почти догадался )), но а с файлом то как? Он ведь все равно будет создаваться?
Я спрашивал вначале чтоб:
- при нахождении совпадения создавался файл out.txt и текст "найдено"
- при ненахождении файл не создавался и текст "не найдено"
а здесь, как я понял будет только
- при не нахождении текст "не найдено"
правильно?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.01.2022, 19:29
Правильно
0
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
12.01.2022, 19:29  [ТС]
iSmokeJC, ---Кстати, вангую - этот код будет работать не так, как ты хочешь.---

Он работает как надо, я проверял, но не хватает пару нюансов, о которых я прошу помощи.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.01.2022, 19:31
Я не пойму - ты не можешь сообразить куда вставить print('найдено') ???
0
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
12.01.2022, 19:43  [ТС]
iSmokeJC, Да, я не въезжаю как сделать что если:
найдено - создается файл и выдаёт текст "найдено"
не найдено - не создается файл, но выдаёт текст "не найдено"
вот и всё, а чтоб вам было понятнее, скажу так - я сегодня первый раз открыл python и вообще до этого никогда никаким кодом не занимался, от слова совсем...

Добавлено через 2 минуты
Но возникла необходимость, вот целый день пытаюсь хоть что-то понять, но потерялся...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.01.2022, 19:46
Лучший ответ Сообщение было отмечено ComZer как решение

Решение

Цитата Сообщение от ComZer Посмотреть сообщение
Да, я не въезжаю как сделать что если:
найдено - создается файл и выдаёт текст "найдено"
Тебе осталось добавить в код вывод слова "найдено". И ВСЁ!!!

Добавлено через 47 секунд
Цитата Сообщение от ComZer Посмотреть сообщение
я сегодня первый раз открыл python и вообще до этого никогда никаким кодом не занимался, от слова совсем
Так может и стОит начать с самых основ?

Добавлено через 2 минуты
Да, глупости какие-то говорю под вечер..
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
with open("txt1.txt", "rt", encoding="utf-8") as file_handle:
    values = file_handle.readlines()
 
with open("txt2.txt", "rt", encoding="utf-8") as file_handle:
    lst = []
    for line in file_handle.readlines():
        if line in values:
            lst.append(line)
    if len(lst) == 0:
        print('Нет совпадений')
    else:
        print(f'Найдено {len(lst)} совпадений.')
        with open("out.txt", "wt", encoding="utf-8") as file_handle_out:
            file_handle_out.write('\n'.join(lst))
2
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
12.01.2022, 19:47  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Тебе осталось добавить в код вывод слова "найдено". И ВСЁ!!!
это я понимаю, а условие при котором "найдено" ?
про "не найдено" вы уже выше писали, это понял
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.01.2022, 19:49
Цитата Сообщение от ComZer Посмотреть сообщение
а условие при котором "найдено" ?
Может ну его, это программирование?
0
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
12.01.2022, 19:49  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Так может и стОит начать с самых основ?
может и надо было, когда-то...
а сейчас мне пока нужен только этот скрипт и начинать изучать всё у меня просто нет ни времени мозгов...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.01.2022, 19:50
Цитата Сообщение от ComZer Посмотреть сообщение
мне пока нужен только этот скрипт
Бери
0
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
12.01.2022, 19:52  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Может ну его, это программирование?
согласен
но прекратите издеваться уже
я просто не хочу и не могу сравнивать вручную вот и пришел к тому что мне нужен скрипт, код от которого невозможно добиться... Все такие умные - но только смеются...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.01.2022, 19:54
Цитата Сообщение от ComZer Посмотреть сообщение
но прекратите издеваться уже
Кто тут над кем издевается????????
Это что?????

Бери, пользуйся!!!!!!
1
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
13.01.2022, 00:03  [ТС]
iSmokeJC, Спасибо тебе, о, наимудрейший!
По неопытности своей сразу не узрел текст свёрнутый выше, каюсь. Спасибо!

Добавлено через 1 час 33 минуты
iSmokeJC, Кстати, не знаю почему, но сразу не хотел работать, пока я методом тыка во вторую строку не добавил {*}, т.е. вместо file_handle.readlines() сделал как было у меня раньше {*file_handle.readlines()}. Теперь всё работает чётко! Спасибо еще раз! Очень помог!
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
13.01.2022, 06:21
Цитата Сообщение от iSmokeJC Посмотреть сообщение
if len(lst) == 0:
можно проще:
Python
1
if not lst:
1
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 19
26.01.2022, 00:37  [ТС]
Тут такое дело... Нужен еще один скрипт который сравнивает два файла base1.txt и base2.txt и если в обеих файлах имеются одинаковые строки - то они игнорируются, а если совпадений для строк не найдено в любом из файлов, т.е. строка имеется только в одном файле - то эта строка чтоб сохранялись в отдельный файл newlines.txt
Блин такое накрутил... В общем базы почти одинаковые, но в каждом файле есть строки, которых нет в другом и наоборот, вот мне и нужно найти эти отличия и сохранить отдельно.

Например:

base1.txt
Кликните здесь для просмотра всего текста
75248521143
6569524696
851642795357
65740285246
5412367854
59124773522
...


base2.txt
Кликните здесь для просмотра всего текста
75248521143
6569524696
851642795357
5412367854
752496547811
59124773522
...


newlines.txt
Кликните здесь для просмотра всего текста
65740285246
752496547811
0
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
26.01.2022, 07:24
ComZer, гуглить: питон, методы множеств. Намек:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
txt1 = '''75248521143
6569524696
851642795357
65740285246
5412367854
59124773522'''
 
txt2 = '''75248521143
6569524696
851642795357
5412367854
752496547811
59124773522'''
 
print({*txt1.split('\n')} ^ {*txt2.split('\n')})
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2022, 07:24
Помогаю со студенческими работами здесь

Скрипт сравнения текста и его замены
Сам я, увы программировать не умею, долго искал в интернете нечто подобное, но увы, ничего не нашел, поэтому прошу вас, добрых форумчан...

скрипт сравнения двух текстовых файлов
Доброго времени суток! помогите с задачкой на Питоне пожалуйста... Суть задачи в том, что есть два текстовых файла, состоящие из...

Выбор текста для сравнения
Как из текстового файла или текст бокса выбрать кусок текста до точки, чтобы начать сравнение со вторым текстовым файлом?

Скрипт для шаблонного текста
Здравствуйте. Есть сайт моей работы, и в течение дня мне приходится много раз вставлять кое-какой шаблонный текст в textarea на одной...

Скрипт для сканирования текста
Добрый день! Задание: Подсчитать количество записей text (к примеру) в тексте и найти самую длинную запись в тексте. Как это...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru