【问题标题】:How can I solve this python error? PermissionError: [WinError 32]我该如何解决这个python错误?权限错误:[WinError 32]
【发布时间】:2021-10-09 14:22:48
【问题描述】:

这是错误:

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> 

这是我的代码:

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')

【问题讨论】:

  • 您正试图在文件仍处于打开状态时对其进行重命名。取消缩进您的 os.rename 行,使其位于 with open...

标签: python python-3.x


【解决方案1】:
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')

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2018-11-02
  • 1970-01-01
  • 2016-07-21
  • 2016-09-09
  • 1970-01-01
  • 2021-06-11
相关资源
最近更新 更多