Найти - Пользователи
Полная версия: поиск по ключевому файлу и выдача результата
Начало » Python для новичков » поиск по ключевому файлу и выдача результата
1 2
hackme
Привет всем Форумчанам! Прошу сильно не пинаться, подскажите как реализовать такое:
- имеется файл с набором слов, длиной не более 5 символов, эти слова могут быть расположены по несколько в одной строке.
1) нужно считать файл-ключ, где будет помечено какое из слов содержит пароль ( что то в роли подсказки)
2) загрузить этот исследуемый файл и проверить имеющиеся в нем слова на наличие совпадений с файлом-ключом. Слова с найденным совпадением записать в новый файл.
Спасибо заранее!
hackme
Товарищи, я не прошу дать мне готовый код.
Подскажите пожалуйста, что конкретно почитать и изучить нужно)
FishHook
hackme
Так нифига же непонятно, вы бы дали исходные файлы и пример того, что нужно получить
doza_and
hackme
что конкретно почитать и изучить нужно)

Основы Питона, конкретно вам могут понадобиться open,read,split,==,write.
hackme
Изложу стоящую задачу более подробно:
1) Имеется файл input.txt, содержащий строки, в которых есть хаотичные последовательности символов (прикрепил)
2) Имеется файл key.txt, содержащий числа 1 и 0 в столбик (прикрепил)
Необходимо считать оба файла, и записать в новый файл out.txt те строки, которые в соответствии с key.txt имеют индекс 1.
Как считать файлы - я разобрался. Но не пойму как провести соответствие строк из input.txt с со строками “1” из key.txt.
Разобрался как делается поиск ключевого символа в строке, а вот как выбрать строки в соответствии с индексами из файла-ключа - не пойму. Точнее, не пойму как правильно построить цикл.
Вот рабочая часть скрипта:
 import re
 f = open('txt/input.txt', 'r')
 i = f.read()
 print (i)
 f = open('txt/key.txt', 'r')
 k = f.read()
 print (k)

Этим циклом пытался считать те строки, которые содержат индекс 1, но он не работает, просто выводит “1” и все
 f = open('txt/key.txt','r')
line_num = 0
search_index = "1"
for line in f.readlines():
    line_num += 1
    if line.find(search_index) >= 0:
        print (line_num)
С циклами, да и вообще знаком с языком Си, а в питоне не пойму, как составить цикл. Спасибо за помощь!
hackme
Ключевой файл
vic57
ЕЯПП
 >>> values = open('input.txt').readlines()
>>> keys = open('key.txt').readlines()
>>> for k,v in zip(keys,values):
	if k.startswith('1'): print(v)
	
2gw1t3,45dgbg,r678,9r,yh,juyj1bvg
2hty34806548,45986609,12234, 5534012
21233
vsdfdr332`13235579
343
8964bv
hackme
vic57
Спасибо большое! не думал, что можно так сократить код))
Изучил функцию zip - полезно и удобно!
hackme
изменил цикл, чтобы он вместо вывода полученных строк, записывал их в файл. Все работает.
в дальнейшем в планах (сначала изучить) реализовать на принципах этого скрипта простейшую нейронную сеть, чтобы она смогла в дальнейшем сама выбирать правильные строки!
 values = open('txt/input.txt').readlines()
keys = open('txt/key.txt').readlines()
f = open('txt/output.txt','w')
for k,v in zip(keys,values):
	if k.startswith('1'): f.write(v)
f.close()
vic57
все верно, хотя сейчас кошерно с файлами работать через with
https://pythonworld.ru/osnovy/with-as-menedzhery-konteksta.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB