From c8260655fe3dc7b604b8da1c98dc3d0ba29d081f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D0=BC=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=20=D0=A2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0?= <36451901+xshiniti@users.noreply.github.com> Date: Mon, 5 Mar 2018 23:06:38 +0300 Subject: [PATCH] Update find_procedure.py Update vers find_procedure.py --- homework/2.3-paths/find_procedure.py | 40 +++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/homework/2.3-paths/find_procedure.py b/homework/2.3-paths/find_procedure.py index 63459ef..a602634 100644 --- a/homework/2.3-paths/find_procedure.py +++ b/homework/2.3-paths/find_procedure.py @@ -42,4 +42,42 @@ if __name__ == '__main__': # ваша логика - pass \ No newline at end of file + +import os.path +import chardet + +def make_files_list(): + migrations_dir = os.path.join(current_dir, migrations) + file_list = os.listdir(path=migrations_dir) + return file_list + +def sql_list(file_list): + proper_files = list() + for i in file_list: + filter(lambda x: x.endswith('.sql'), files) # only sql files + proper_files.append(i) + return proper_files + +def readable_files(file_name): + with open(os.path.join(current_dir, migrations, file_name), 'rb') as l: + info = l.read() + result = chardet.detect(info) + info = info.decode(result['encoding']) + return info + +def find_string(sql_list): + file_list = sql_list + while True: + search = input('Write your string: ') + files_inside = list() + for file_name in file_list: + if search in readable_files(file_name): + files_inside.append(file_name) + print(file_name) + print('Всего: {0}'.format(len(files_inside))) + file_list = files_inside + +if __name__ == '__main__': + find_string(sql_list(make_files_list())) + + pass