Python, combinando datos como una parte coincidente de dos archivos usando un diccionario.
Input1:
Aa Ab,Ac,Información1
Ba Bb,Bc,Información2
Ca Cb,Cc,Información3
Input2:
ID
A1
A2 información3
A3 asdfasdf
A3 vlkmgoie
//
ID
A1
A2 información2
A3 opjnbiube
A3 plwikjnd
//
Expected output:
>Aa,Ab,Ac,Información1
>Ba,Bb,Bc,Información2
A3 opjnbiube
A3 plwikjnd
>Ca,Cb,Cc,Información3
A3 asdfasdf
A3 vlkmgoie
Code:
diccionario = {}
with open(input_file1, 'r') as entrada1:
for linea in entrada1:
linea_reemplazada = '>' + linea.replace('\t', ',').strip()
identificador = linea_reemplazada.strip().split(',')[-1]
diccionario[identificador] = identificador
with open(input_file2, 'r') as entrada2:
for bloque in entrada2.read().split('//'):
for k in diccionario.keys():
llaves_desde_id = k
if llaves_desde_id in bloque:
Primero, extraje solo la información al final de input_file1. Luego, se crearon bloques (unidades) basados en ‘//’ en input_file2. En esta situación, si los bloques de input_file2 contienen información extraída de input_file1, quiero escribir el contenido de una parte del bloque debajo de cada línea de input_file1 como se muestra en ‘Expected output’. Entonces, mi pregunta es cómo puedo guardar la información extraída de input_file1 como un diccionario mediante la coincidencia de los contenidos del bloque de input_file2.
davy.ai
Para guardar la información extraída del archivo de entrada input_file1 como un diccionario mediante la coincidencia de los contenidos de bloques del archivo de entrada input_file2, puedes crear un diccionario anidado donde las claves del diccionario externo son los identificadores del archivo input_file1 y los valores son diccionarios internos. Los diccionarios internos pueden tener claves para la información del archivo input_file1 (por ejemplo, Aa, Ab, Ac, Information1) y valores de una lista vacía para almacenar los contenidos del archivo input_file2 que coinciden con esa información.
Aquí tienes un ejemplo de fragmento de código:
Con este código, deberías obtener un
outer_dict
que tiene la siguiente estructura:Los
...
representan la lista de contenidos del archivo input_file2 que coinciden con la información del archivo input_file1. Luego puedes utilizar este diccionario para generar la salida deseada.