0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91

Поиск в файлах по определенным словам

03.03.2015, 14:50. Показов 15760. Ответов 83
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
питон не так давно изучаю поэтому имею некоторые сложности с написанием программы.имеются два больших текстовых файла.необходимо написать программу которая будет выполнять поиск в файлах по определенным словам и эти слова будет записывать а отдельный файл.подскажите как это написать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2015, 14:50
Ответы с готовыми решениями:

Поиск по словам в файлах
Доброго времени суток. Возникла задача, требующая поиска в текстовых файлах (txt & html) определенных слов\фраз (указанных...

Ограничить поиск по определенным словам
Здравствуйте. Подскажите пожалуйста как скрывать неприемлемые материалы в результатах поиска Или же как скрывать информацию по...

Поиск по словам в файлах с расширением *.mht
Здравствуйте! Подскажите, пожалуйста, как можно реализовать поиск по словам в нескольких файлах *.mht с последующим выводом этого...

83
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
03.03.2015, 15:20
Давайте по порядку. Входные данные - два больших текстовых файла. Выходные данные - еще один файл со словами, по которым происходил поиск в файлах из входных данных? Откуда берутся слова по которым идет поиск? Если их нужно записать в отдельный файл, то зачем что-то где-то искать?
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
03.03.2015, 15:30  [ТС]
изначально два текстовых файла.нужно сделать поиск в них с определенно строки до определенной(например с 15й по 60ю)и проверить наличие в этих строках нужных слов.слова мы изначально знаем(GND, VCC,IOVDD) после этого поиска необходимо записать данные слова в отдельный файл.а записывать их нужно в файл тк этого требует условие задачи
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
03.03.2015, 15:32
А зачем что-то искать, если мы из сразу можем записать в файл - мы же их знаем) Я просто пока не понимаю, как связаны поиск и запись. Может нужно записать с указанием в каком файле и на какой строке они были найдены?
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
03.03.2015, 15:41  [ТС]
имеются просто два таких файла они идут с сайтов производителей микросхем.и мне необходимо проанализировав данный файлы провести тест этих микросхем(т.е.с определенного пина подать сигнал на другой и проверить если связь между ними)для этого мне необходимо получить номера пинов из файлов.тк моя программа использует язык питон
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
03.03.2015, 15:56
Значит надо не просто слова, а всю строку ( слово вместе с номером ПИНа) или просто ПИН?
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
03.03.2015, 15:59  [ТС]
надо название и номер пина(например reset:73)
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
03.03.2015, 16:03
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def in_string(f1, f2, f3, lst):
# считываем первый файл
    with open(f1, 'r') as file1:
        content1 = file1.readlines()
 
# считываем второй файл
    with open(f2, 'r') as file2:
        content2 = file2.readlines()
 
# записываем в третий файл
    with open(f3, 'w') as file3:
        file3.write("FROM " + f1 + ":") #для первого
        for line in content1:
            for word in lst:
                if word in line:
                    file3.write(line)
        file3.write("FROM " + f2 + ":") # для второго
        for line in content2:
            for word in lst:
                if word in line:
                    file3.write(line)
 
    file1.close()
    file2.close()
    file3.close()
 
in_string('fil1.txt', 'fil2.txt', 'fil3.txt', ['Radius', 'Tacacs', 'SSL', 'HTTPS'])
Что-то типа такого?
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
03.03.2015, 16:13  [ТС]
что то не получается.вставил эту прогу.подключил файлы и ничего((
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
03.03.2015, 16:27
у меня все ищет. для того чтобы указать с какой по какую строку:
(если с 15 по 61)

Python
1
for line in content1[15:61]:
Добавлено через 25 секунд
ПС. У Вас же простой текстовый файл?
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
03.03.2015, 16:34  [ТС]
программа будет выглядеть так??

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def in_string(f1, f2, f3, lst):
# считываем первый файл
    with open(f1, 'r') as file1:
        for line in content1[15:61]:
             content1 = file1.readlines()
 
# считываем второй файл
    with open(f2, 'r') as file2:
        content2 = file2.readlines()
 
# записываем в третий файл
    with open(f3, 'w') as file3:
        file3.write("FROM " + f1 + ":") #для первого   FROM это значит что?
        for line in content1:
            for word in lst:
                if word in line:
                    file3.write(line)
        file3.write("FROM " + f2 + ":") # для второго
        for line in content2:
            for word in lst:
                if word in line:
                    file3.write(line)
 
    file1.close()
    file2.close()
    file3.close()
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
03.03.2015, 16:36
Цитата Сообщение от Jabbson Посмотреть сообщение
Я просто пока не понимаю, как связаны поиск и запись
Не уверен, что угадал, но думаю: если в нужных строках одно или несколько искомых слов встретится, их как-раз в другой файл и надо записывать (для полного счастья ещё и с номерами строк)
Как вариант:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python3
 
INFILE_NAME = "input.txt"
OUTFILE_NAME = "output.txt"
KEYWORDS = ('GND', 'VCC','IOVDD')
START_ROW = 3
END_ROW = 13
 
found = {}
 
for number, line in enumerate(open(INFILE_NAME)):
    if START_ROW <= number <= END_ROW:
        row_words = line.split()
        for kw in KEYWORDS:
            if kw in row_words:
                if number in found:
                    found[number].append(kw)
                else:
                    found[number] = [ kw ]
 
with open(OUTFILE_NAME, "w") as outfile:
    for nl in sorted(found):
        outfile.write("%d: %s\n" % (nl + 1, ' '.join(found[nl])))
input.txt
bla bla bla
bla bla bla
bla bla bla
bla bla bla
VCC VCC bla bla bla
bla bla bla
bla bla GND bla
bla GND bla VCC bla
bla bl bla IOVDD
bla bla bla
bla GND bla bla
bla bla bla
IOVDD bla GND bla VCC
bla bla bla
bla bla bla
bla bla bla
bla bla bla
bla bla bla
bla bla bla

output.txt
5: VCC
7: GND
8: GND VCC
9: IOVDD
11: GND
13: GND VCC IOVDD


Пока сочинял, столько новых подробностей всплыло... Ну да оставлю - вдруг чем-то пригодится...
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
03.03.2015, 16:55  [ТС]
пока что то не получается прикрутить прогу
файk такойadsp 2191.txt
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
03.03.2015, 17:11
Вот с таким кодом:

Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def in_string(f1, f2, f3, lst):
 
    with open(f1, 'r') as file1:
        content1 = file1.readlines()
 
    with open(f2, 'r') as file2:
        content2 = file2.readlines()
 
    with open(f3, 'w') as file3:
        file3.write("FROM " + f1 + ":\n\n")
        for line in content1[80:155]:
            for word in lst:
                if word in line:
                    file3.write(line)
        file3.write("FROM " + f2 + ":\n\n")
        for line in content2[80:155]:
            for word in lst:
                if word in line:
                    file3.write(line)
    file1.close()
    file2.close()
    file3.close()
 
in_string('fil1.txt', 'fil2.txt', 'fil3.txt', ['GND', 'VCC', 'IOVDD'])


и Вашим файлом (переименовал в fil1.txt, чтобы было как в программе), я получаю вот такой результат

Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
FROM fil1.txt:
 
                "IOVDD:  (13,25,40,63,90,100,118,131,143)," &
                "GND:    (5,16,29,33,54,55,77,80,94,105,129,134)" ;
FROM fil2.txt:
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
03.03.2015, 17:40  [ТС]
Jabbson, cпасибо большое)попробую попозже еще написать в своей программе)завтра отпишусь как все прошло
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
05.03.2015, 13:20  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def in_string(f1, f2, f3, lst):
with open(f1, 'r') as file1:
* * * * content1 = file1.readlines()
with open(f2, 'r') as file2:
* * * * content2 = file2.readlines()
with open(f3, 'w') as file3:
* * * * file3.write("FROM " + f1 + ":\n\n")
* * * * for line in content1[80:155]:
* * * * * * for word in lst:
* * * * * * * * if word in line:
* * * * * * * * * * file3.write(line)
* * * * file3.write("FROM " + f2 + ":\n\n")
* * * * for line in content2[80:155]:
* * * * * * for word in lst:
* * * * * * * * if word in line:
* * * * * * * * * * file3.write(line)
* * file1.close()
* * file2.close()
* * file3.close()
in_string('fil1.txt', 'fil2.txt', 'fil3.txt', ['GND', 'VCC', 'IOVDD'])
подскажите пожалуйста как производить поиск в данном текстовом файле(например писать с определенного слова(port ( до определенного другого(use std)) и все что входит в этот диапазон записать в другой файл?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
05.03.2015, 14:03
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def copy2files(start, stop, infile, outfile):
 
    with open(infile, 'r') as in_file, open(outfile, 'w') as out_file:
        copy = False
        for line in in_file:
            if start in line.strip():
                copy = True
                out_file.write(line)
            elif stop in line.strip():
                copy = False
            elif copy:
                out_file.write(line)
    in_file.close()
    out_file.close()
 
copy2files('port', 'use ', 'fil1.txt', 'fil4.txt')
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
05.03.2015, 14:36  [ТС]
Jabbson, а если такое писать по еще одни параметрам то их просто указать внизу надо рядом с теми которые уже написаны?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
05.03.2015, 14:38
не совсем понял вопрос
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 91
05.03.2015, 14:44  [ТС]
в этом же файле еще раз делать тоже самое плюс еще и по другим словам(например с "PIN MAP" до ";") и дописывать эти результаты в тот файл который уже создали
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2015, 14:44
Помогаю со студенческими работами здесь

Поиск сайта по определенным словам или словосочетаниям
Добрый день. Есть сайт, частный не бесплатный хостинг, на котором лежит этот сайт. Как сделать так, чтобы сайт был доступен в поисковиках...

Реализовать поиск по словам в txt файлах ресурсов и выделить слово в richtexbox
Всем доброго времени суток. В общем. Пишу программу-справочник. Есть в ней разделы. Под каждый раздел в RichTextBox вставляется текст из...

Поиск заданной строки в файлах с определённым расширением
echo off setlocal :START SET /P str= Введите символьную строку: SET /P disk= Введите дисковый том: if /i &quot;%disk%&quot; ==...

Как добавить видео из YouTube на сайт по определённым словам или тегам?
Можно как-то организовать добавление видео из YouTube по определённым словам или по тегам, указанным к самим видео? Вот пример добавления...

Запись в два столбца значений, получаемых при обработке строк, найденных в файлах по двум ключевым словам
Мой вопрос: Есть команда: FOR /F &quot;tokens=3 delims=&gt;&lt;&quot; %%i in ('findstr &quot;/R250GB&quot; C:\11111\*.XML') do (echo.%%i&gt;&gt;C:\222\kod.txt) Есть...


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

Или воспользуйтесь поиском по форуму:
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