Python - escribir en un archivo en determinadas lineas

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

escribir en un archivo en determinadas lineas

Publicado por clara (2 intervenciones) el 13/04/2019 16:06:16
Buenas tardes,
necesito ayuda en lo siguiente:
tengo un archivo con información de coordenadas de miles de moléculas. Debería de estar el nombre de cada una de ellas pero en este caso no hay nombres y lo tengo que generar yo. Algo del estilo molecula1, molecula2, etc.

El archivo que adjunto solo contiene cinco de ellas. Los nombres deben aparecer justo en la línea debajo de la expresión @<TRIPOS>MOLECULE, es decir, cada vez que aparece esta expresión en la linea siguiente debe aparecer un nombre.

Puede alguien ayudarme?
Muchas gracias,
clara
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 156
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

escribir en un archivo en determinadas lineas

Publicado por Andrés (55 intervenciones) el 14/04/2019 01:06:41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
archivo_entrada = 'prueba5_1_noname_mol2.mol2'
archivo_salida = 'updated'
 
patron = '@<TRIPOS>MOLECULE'
 
with open(archivo_salida, 'w') as salida:
    with open(archivo_entrada) as archivo:
        lines = archivo.readlines()
        ocurrencia = 0
        for line in lines:
            salida.write(line)
            if patron in line:
                salida.write(f"molecula{ocurrencia}")
                ocurrencia += 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

escribir en un archivo en determinadas lineas

Publicado por clara (2 intervenciones) el 14/04/2019 10:06:11
es perfecto. Muchísimas gracias!!!!!

Una cosa más. Se trata de algo muy parecido pero en otro archivo, donde hay que hacer la modificación en otro lugar. Arriba de la ocurrencia en este caso.
Sería colocar el nombre de las moléculas justo en la línea de arriba de la expresión -OEChem-02151111103D. En la primera molécula será justo la primera línea del documento y en las siguientes quedará entre OEChem-02151111103D y $$$$.


muchas gracias por tu ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar