Home > Back-end >  How can I solve this python error? PermissionError: [WinError 32]
How can I solve this python error? PermissionError: [WinError 32]

Time:10-10

This is the error:

os.rename(nombre_del_file_anterior, nombre_del_file_nuevo)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'contactos/alex.txt' -> 'contactos/pirata.txt'
PS C:\apps\python> 

this is my code:

def editar_contacto():

    print('Escribe el nombre del contacto a editar')

    nombre_anterior = input('Nombre del contacto que desea editar: \r\n')

    # Revisa si el archivo existe con ese nombre, antes de editarlo 
    existe = existe_contacto(nombre_anterior)

    if existe:
        with open(CARPETA   nombre_anterior   EXT, 'w') as archivo:
            
            # Resto de los campos
            nombre_contacto = input('Agregar el nuevo nombre: \r\n')
            telefono_contacto = input('Agrega el nuevo telefono: \r\n')
            categoria_contacto = input('Agrega la nueva Categoria: \r\n')

            #Instanciar
            contacto = Contacto(nombre_contacto, telefono_contacto, categoria_contacto)

            #Escribir en el archivo
            archivo.write('Nombre:'   contacto.nombre   '\r\n') 
            archivo.write('Telefono:'   contacto.telefono   '\r\n') 
            archivo.write('Categoria:'   contacto.categoria   '\r\n')
            
            nombre_del_file_anterior = f'contactos/{nombre_anterior}.txt'
            nombre_del_file_nuevo = f'contactos/{contacto.nombre}.txt'

            #Renombrar el archivo
            os.rename(nombre_del_file_anterior, nombre_del_file_nuevo)

            #Mostrar mensaje de exito
            print(' \r\n Contacto Editado correctament \r\n ')
    else:
        print('Este contacto no existe')

CodePudding user response:

def editar_contacto():

print('Escribe el nombre del contacto a editar')

nombre_anterior = input('Nombre del contacto que desea editar: \r\n')

# Revisa si el archivo existe con ese nombre, antes de editarlo 
existe = existe_contacto(nombre_anterior)

if existe:
    with open(CARPETA   nombre_anterior   EXT, 'w') as archivo:
        
        # Resto de los campos
        nombre_contacto = input('Agregar el nuevo nombre: \r\n')
        telefono_contacto = input('Agrega el nuevo telefono: \r\n')
        categoria_contacto = input('Agrega la nueva Categoria: \r\n')

        #Instanciar
        contacto = Contacto(nombre_contacto, telefono_contacto, categoria_contacto)

        #Escribir en el archivo
        archivo.write('Nombre:'   contacto.nombre   '\r\n') 
        archivo.write('Telefono:'   contacto.telefono   '\r\n') 
        archivo.write('Categoria:'   contacto.categoria   '\r\n')
        
        nombre_del_file_anterior = f'contactos/{nombre_anterior}.txt'
        nombre_del_file_nuevo = f'contactos/{contacto.nombre}.txt'

    #Renombrar el archivo
    os.rename(nombre_del_file_anterior, nombre_del_file_nuevo)

    #Mostrar mensaje de exito
    print(' \r\n Contacto Editado correctament \r\n ')
else:
    print('Este contacto no existe')
  • Related