2012-12-06 2 views
3

J'écris du code qui ajoute des extensions aux fichiers en fonction de l'en-tête du fichier. Avec les fichiers gzip, j'extrais les données.Python: Pourquoi est-ce que je reçois un WinError 32?

Lorsque je tente et exécuter le code je reçois un WinError 32. Voici le code et l'erreur

Merci pour tout conseil.

def extract(): 
    os.chdir("C:/Users/David/MyFiles") 
    files = os.listdir(".") 
    for x in (files): 
     inputFile = open((x), "rb") 
     byte1 = inputFile.read(1) 
     byte2 = inputFile.read(1) 
     if byte1 == b'\x1f' and byte2 == b'\x8b': 
      os.rename((x), (x) + ".gz") 
      file = gzip.open((x), "rb") 
      content = file.read() 
      with open((x), "wb") as outputFile: 
       outputFile.write(content) 

Erreur:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'f_000002.gz' 

Répondre

5

Vous devez fermer inputFile avant d'essayer de le renommer:

... 
    inputFile = open((x), "rb") 
    byte1 = inputFile.read(1) 
    byte2 = inputFile.read(1) 
    inputFile.close() 
+0

grâce, une chose facile, mais ne pouvait pas le voir –

Questions connexes