Mon programme Python
envoie une image à mon serveur Web via FTP
, mais occasionnellement à l'arrivée, des données partielles sont perdues à partir de l'image transférée. Le programme prend une capture d'écran toutes les x
secondes, puis télécharge l'image sur le serveur Web. Mon fournisseur d'hébergement Web pense qu'il doit provenir du programme Python
lui-même, alors s'il vous plaît laissez-moi savoir ce que je fais mal de provoquer ce problème.Pourquoi mon image perd-elle des données via mon programme FTP Python?
image (ce qu'il ressemble lorsqu'il est tiré à partir du serveur Web):
code:
def ftp(self): # Screen Grab and FTP Transfer
new = ImageGrab.grab(bbox=(0, 50, 1366, 720))
new = new.resize((1366, 700), PIL.Image.ANTIALIAS)
new.save("C:\\Users\\Owner\\Desktop\\screenshots\\capture.jpg")
newOpen = PIL.Image.open("C:\\Users\\user\\Desktop\\screenshots\\capture.jpg")
newOpen.save("C:\\Users\\Owner\\Desktop\\screenshots\\capture.jpg", format="JPEG", quality=40)
tries = 10 # Denotes maximum try limit for retry attempts
for i in range(tries):
try:
# FTP image to Web Server
session = ftplib.FTP('server', 'user', 'pass')
file = open('C:\\Users\\Owner\\Desktop\\screenshots\\capture.jpg', 'rb') # file to send
session.storbinary('STOR capture.jpg', file) # send the file
file.close() # close file and FTP
session.quit()
value = "Updated. \nFailed " + str(i) + " Times\n" + str(self.tick)
print value
self.tick += 1
except KeyError as e:
if i < tries - 1: # i is zero indexed
continue
else:
raise
break
threading.Timer(5, self.ftp).start()
Avez-vous vérifié la taille du fichier avant et après le téléchargement? Est-ce qu'ils correspondent? –
@MartinPrikryl crédit est due à vous à cause de votre suggestion. En surveillant la taille du fichier, j'ai pu diagnostiquer le problème. Merci pour l'aide. Aussi, grand fan de votre logiciel – jameson1128