2013-05-08 4 views
1

Je reçois une erreur d'autorisation lorsque j'essaie d'enregistrer une capture d'écran de Sikuli sous Windows. Le code qui est de faire la capture est:IOError: [Errno 13] Autorisation refusée

def CaptureScreenshot(self): 
    resultsDirectory = os.path.join('C','08 May 2013 11 34','myname.png') 
    screenshot = capture(self.screen) 
    print(screenshot) 
    shutil.move(screenshot,self.resultsDirectory) 

Lorsque j'imprime le chemin d'écran retourné par capture, je reçois

D:\DOCUME~1\BUNNINGS\LOCALS~1\Temp\sikuli-scr-366782306192033926.png 

Quand je lance le code, je reçois cette erreur:

Traceback (most recent call last): 
    File "__pyclasspath__/Tests/Tests.py", line 12, in tearDown 
    File "__pyclasspath__/Scripts/Screen.py", line 39, in CaptureScreenshot 
    File "C:\jython2.5.3\Lib\shutil.py", line 205, in move 
    copy2(src,dst) 
    File "C:\jython2.5.3\Lib\shutil.py", line 96, in copy2 
    copyfile(src, dst) 
    File "C:\jython2.5.3\Lib\shutil.py", line 52, in copyfile 
    fdst = open(dst, 'wb') 
IOError: [Errno 13] Permission denied: 'C\\08 May 2013 11 34\\myname.png' 

Le dossier de destination existe et myname.png est le nouveau nom que j'essaie de donner à l'image. J'ai remarqué que les propriétés du dossier de destination sont définies sur "lecture seule". Est-ce que cela cause le problème? Je ne pouvais pas changer l'attribut readonly; quand j'essaye, ça revient à readonly.

Répondre

3

Il semble qu'il manque un deux-points après le C dans votre chemin. Vous essayez maintenant d'écrire dans un sous-répertoire 'C' du répertoire courant.

Essayez de changer la deuxième ligne en:

resultsDirectory = os.path.join('C:','08 May 2013 11 34','myname.png') 
           ^
+0

Merci. J'ai corrigé l'erreur et travaille maintenant. – Loganswamy

+0

@ Loganswamy vous pouvez cliquer sur la case à cocher à côté de la réponse d'Anthon pour la marquer comme la bonne solution. –

Questions connexes