Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- def split_pages(file_path):
- # Відкриваємо файл з кодуванням cp1251
- with open(file_path, 'r', encoding='cp1251') as file:
- text = file.read()
- pages = text.split('\x0c')
- return pages
- def has_matching_fourth_line(page):
- # Регулярний вираз для перевірки
- pattern = re.compile(r'^.*".*".*$')
- lines = page.splitlines()
- if len(lines) >= 4 and pattern.match(lines[3]):
- return True
- else:
- return False
- def contains_any_element(elements, text):
- for element in elements:
- if element in text:
- return True
- return False
- def append_array_to_txt(elements, file_path_result):
- with open(file_path_result, 'a', encoding='cp1251') as file_result:
- for element in elements:
- file_result.write(element)
- def remove_crlf_lines(input_file_path, output_file_path):
- # Читаємо вміст вихідного файлу
- with open(input_file_path, 'r', encoding='cp1251') as file:
- lines = file.readlines()
- # Фільтруємо рядки, які не містять лише символи CRLF
- filtered_lines = [line for line in lines if line.strip() != '']
- # Записуємо відфільтрований вміст у новий файл
- with open(output_file_path, 'w', encoding='cp1251') as file:
- file.writelines(filtered_lines)
- banks = [
- 'А - БАНК',
- 'А-БАНК',
- 'ІДЕЯ БАНК',
- 'КРИСТАЛБАНК',
- 'СЕНС БАНК',
- ]
- # Виклик функції
- file_path = 'd:\\test\\bank\\bank.txt'
- file_path_rusult = 'd:\\test\\bank\\bank_result.txt'
- file_path_rusult_clean = 'd:\\test\\bank\\bank_result_clean.txt'
- pages = split_pages(file_path)
- #has_matching_fourth_line(pages)
- #print ("Number of pages: " + str ((len(pages))))
- #print(result)
- cleanPages = []
- flag = "no"
- for element in pages:
- #перевіряємо сторінку на наявність регулярного виразу
- if has_matching_fourth_line(element):
- if contains_any_element(banks,element):
- flag = "yes"
- cleanPages.append(element + '\x0c')
- else:
- flag = "no"
- else:
- if flag == "yes":
- cleanPages.append(element + '\x0c')
- append_array_to_txt(cleanPages,file_path_rusult)
- remove_crlf_lines(file_path_rusult,file_path_rusult_clean)
Advertisement
Add Comment
Please, Sign In to add comment