2013-04-15 5 views
1

Im d'exécuter ce programme pour prendre un instantané de mon écran et l'enregistrer, mais obtenir un message d'erreurerreur de programme instantané python

import os 
import sys 
import time 
import Image 
import ImageGrab 

SaveDirectory=r'C:\Documents and Settings\User\My Documents\My Pictures' 
ImageEditorPath=r'C:\WINDOWS\system32\mspaint.exe' 
img=ImageGrab.grab() 
saveas=os.path.join(SaveDirectory,'ScreenShot_'+time.strftime('%Y_%m_%d%_%H_%M_%S')+'.png') 
img.save(saveas) 
editorstring='""%s" "%s"'% (ImageEditorPath,saveas) 
os.system(editorstring) 

c'est le message d'erreur:

Traceback (most recent call last): 
    File "C:/Python27/butt", line 10, in <module> 
    saveas=os.path.join(SaveDirectory,'ScreenShot_'+time.strftime('%Y_%m_%d%_%H_%M_%S')+'.png') 
ValueError: Invalid format string 

Répondre

2

Votre problème est le %_ dans votre chaîne de format pour strftime - ce n'est pas une valeur valide. Remplacer la chaîne de format avec ce qui suit et vous devriez être bien:

'%Y_%m_%d_%H_%M_%S'

Vous pouvez dire la chaîne de format est en faute, car l'erreur soulevée (ValueError: Invalid format string) fait référence à une chaîne de format, et la seule chaîne de format la ligne 10 est celle-ci. Vous pouvez vérifier le documentation pour voir quels caractères seraient des entités valides. %_ n'est pas l'un d'entre eux, et je devine que c'était juste une erreur typographique.

+0

Merci pour l'aide! –

+1

Content de vous aider! Si l'une des réponses résout votre problème, vous devez l'accepter. – ASGM

1

Il y a quelque chose qui manque sur le temps:

str_time = time.strftime(your_real_date,'%Y_%m_%d_%H_%M_%S') 
saveas=os.path.join(SaveDirectory,'ScreenShot_'+ str_time +'.png') 

Et chaque fois, un peu à la vérification Python Docs: 8.1.7. strftime() and strptime() Behavior pour assurer l'utilisation d'une chaîne/Date convertion

+0

Merci ça marche maintenant !! –