2017-06-10 3 views
0

Im utilisant la connexion FTP, après la fermeture de la connexion, je dois travailler avec le fichier. Comment puis je faire ça?winerror32 Python renommer le fichier

import ftplib, os, time 

host = "ftp_host" 
ftp_user = "ftp_user" 
ftp_password = "ftp_pass" 
filename = "Mon.xlsx" 

filename2 = "Monitor9564.xlsx" 
os.rename(filename, filename2) 

con = ftplib.FTP(host, ftp_user, ftp_password) 

f = open(filename2, "rb") 

send = con.storbinary("STOR " + filename2, f) 

con.close 

time.sleep(2) 
os.rename(filename2, filename) 

Mais im obtenir une erreur

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'Monitor9564.xlsx' -> 'Mon.xlsx' 

Répondre

0

Vous ne fermez pas votre poignée de fichiers avant de tenter de renommer votre fichier. Vous pouvez émettre f.close() avant votre deuxième méthode de changement de nom, ou vous pouvez laisser Python traiter les étendues de gestion de fichier approprié pour vous:

# code... 
with open(filename2, "rb") as f: 
    send = con.storbinary("STOR " + filename2, f) 
    con.close() 
os.rename(filename2, filename) 

De plus, pourquoi êtes-vous renommez que votre fichier pour le renommer à son nom d'origine?