【发布时间】: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