import os # O ficheiro Grupo VAG ECU.txt deve estar na mesma pasta que este script. DATA_FILE_PATH = os.path.join(os.path.dirname(__file__), 'Grupo VAG ECU.txt') def load_vag_ecu_list(): """ Carrega a lista de famílias de ECU do Grupo VAG a partir do ficheiro Grupo VAG ECU.txt. Retorna: set: Um conjunto de strings, onde cada string é uma família de ECU do Grupo VAG. Retorna um conjunto vazio se o ficheiro não for encontrado ou ocorrer um erro. """ vag_ecus = set() if not os.path.exists(DATA_FILE_PATH): print(f"Erro: Ficheiro de dados não encontrado em {DATA_FILE_PATH}") return vag_ecus try: # Tentar ler com utf-8 primeiro, que é mais universal with open(DATA_FILE_PATH, mode='r', encoding='utf-8') as file: for line in file: stripped_line = line.strip() if stripped_line: # Adicionar apenas se a linha não estiver vazia após remover espaços vag_ecus.add(stripped_line) except UnicodeDecodeError: # Se utf-8 falhar, tentar com 'latin-1' como fallback try: vag_ecus.clear() # Limpar o conjunto antes de tentar novamente with open(DATA_FILE_PATH, mode='r', encoding='latin-1') as file: for line in file: stripped_line = line.strip() if stripped_line: vag_ecus.add(stripped_line) except Exception as e_latin1: print(f"Erro ao ler o ficheiro {DATA_FILE_PATH} com latin-1: {e_latin1}") return set() # Retornar conjunto vazio em caso de erro except Exception as e_utf8: print(f"Erro ao ler o ficheiro {DATA_FILE_PATH} com utf-8: {e_utf8}") return set() # Retornar conjunto vazio em caso de erro return vag_ecus if __name__ == '__main__': # Exemplo de utilização: vag_ecu_families = load_vag_ecu_list() if vag_ecu_families: print(f"Carregadas {len(vag_ecu_families)} famílias de ECU do Grupo VAG.") # Imprimir algumas para exemplo (se houver) count = 0 for ecu in vag_ecu_families: print(ecu) count += 1 if count >= 5: break else: print("Nenhuma família de ECU do Grupo VAG carregada.")