Advertisement
Paulo87

Extrator de cloud

Jul 19th, 2024 (edited)
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.69 KB | None | 0 0
  1. import os
  2. import re
  3.  
  4. class bcolors:
  5.     HEADER = '\033[95m'
  6.     OKBLUE = '\033[94m'
  7.     OKCYAN = '\033[96m'
  8.     OKGREEN = '\033[92m'
  9.     WARNING = '\033[93m'
  10.     FAIL = '\033[91m'
  11.     ENDC = '\033[0m'
  12.     BOLD = '\033[1m'
  13.     UNDERLINE = '\033[4m'
  14.  
  15. def remove_links_and_colon(text):
  16.     url_pattern = re.compile(r'https?://[^:]+:|www\.[^:]+:')
  17.     return url_pattern.sub('', text)
  18.  
  19. def process_files(keyword, files):
  20.     results = []
  21.     for file_path in files:
  22.         with open(file_path, 'r', encoding='utf-8') as file:
  23.             contents = file.read()
  24.         matches = [line for line in contents.split('\n') if keyword.lower() in line.lower()]
  25.         results.extend(matches)
  26.     return results
  27.  
  28. def save_results(keyword, directory, results):
  29.     if results:
  30.         output_filename = f"{keyword}_results.txt"
  31.         output_path = os.path.join(directory, output_filename)
  32.         with open(output_path, 'w', encoding='utf-8') as output_file:
  33.             output_file.write('\n'.join(results))
  34.         print(f"{bcolors.OKGREEN}Os dados extraídos foram salvos em: {output_path}{bcolors.ENDC}")
  35.     else:
  36.         print(f"{bcolors.WARNING}Nenhuma correspondência encontrada.{bcolors.ENDC}")
  37.  
  38. def remove_url_from_data(file_path):
  39.     url_pattern = re.compile(r'https?://[^:]+:|www\.[^:]+:')
  40.     new_file_path = file_path.replace('.txt', '_cleaned.txt')
  41.    
  42.     if not os.path.isfile(file_path):
  43.         print(f"{bcolors.FAIL}Arquivo não encontrado.{bcolors.ENDC}")
  44.         return
  45.    
  46.     with open(file_path, 'r', encoding='utf-8') as file:
  47.         contents = file.read()
  48.    
  49.     cleaned_contents = url_pattern.sub('', contents)
  50.    
  51.     with open(new_file_path, 'w', encoding='utf-8') as new_file:
  52.         new_file.write(cleaned_contents)
  53.    
  54.     print(f"{bcolors.OKBLUE}Os links foram removidos e o arquivo foi salvo como: {new_file_path}{bcolors.ENDC}")
  55.  
  56. def main_menu():
  57.     print(f"{bcolors.HEADER}Bem-vindo ao Extrator de Dados!{bcolors.ENDC}")
  58.     print("Escolha uma das seguintes opções:")
  59.     print(f"{bcolors.OKCYAN}1 - Extrair dados de um único arquivo{bcolors.ENDC}")
  60.     print(f"{bcolors.OKCYAN}2 - Extrair dados de todos os arquivos em uma pasta{bcolors.ENDC}")
  61.     print(f"{bcolors.OKCYAN}3 - Remover a parte do link e deixar 'nome:senha'{bcolors.ENDC}")
  62.     print(f"{bcolors.FAIL}4 - Sair{bcolors.ENDC}")
  63.  
  64. if __name__ == "__main__":
  65.     main_menu()
  66.     option = input(f"{bcolors.BOLD}Digite o número da opção desejada: {bcolors.ENDC}")
  67.  
  68.     if option == '4':
  69.         print(f"{bcolors.WARNING}Saindo do programa.{bcolors.ENDC}")
  70.     elif option == '3':
  71.         file_path = input("Digite o caminho completo do arquivo para remover a parte do link: ")
  72.         remove_url_from_data(file_path)
  73.     else:
  74.         keyword = input("Digite a palavra-chave: ")
  75.  
  76.         if option == '1':
  77.             file_path = input("Digite o caminho completo do arquivo: ")
  78.             if os.path.isfile(file_path):
  79.                 results = process_files(keyword, [file_path])
  80.                 save_results(keyword, os.path.dirname(file_path), results)
  81.             else:
  82.                 print(f"{bcolors.FAIL}Arquivo não encontrado.{bcolors.ENDC}")
  83.         elif option == '2':
  84.             directory = input("Digite o caminho da pasta: ")
  85.             if os.path.isdir(directory):
  86.                 files = [os.path.join(directory, f) for f in os.listdir(directory) if f.endswith('.txt')]
  87.                 results = process_files(keyword, files)
  88.                 save_results(keyword, directory, results)
  89.             else:
  90.                 print(f"{bcolors.FAIL}Pasta não encontrada.{bcolors.ENDC}")
  91.         else:
  92.             print(f"{bcolors.FAIL}Opção inválida.{bcolors.ENDC}")
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement