J'essaie d'utiliser le code suivant pour décompresser tous les dossiers zip dans mon dossier racine; ce code a été trouvé sur ce fil:pourquoi zipfile essayant de décompresser les fichiers xlsx?
Unzip zip files in folders and subfolders with python
rootPath = u"//rootdir/myfolder" # CHOOSE ROOT FOLDER HERE
pattern = '*.zip'
for root, dirs, files in os.walk(rootPath):
for filename in fnmatch.filter(files, pattern):
print(os.path.join(root, filename))
zipfile.ZipFile(os.path.join(root, filename)).extractall(os.path.join(root, os.path.splitext(filename)[0]))
mais je continue à obtenir cette erreur qui dit FileNotFoundError disant que le fichier XLSX n'existe pas:
Traceback (most recent call last):
File "//rootdir/myfolder/Python code/unzip_helper.py", line 29, in <module>
zipfile.ZipFile(os.path.join(root, filename)).extractall(os.path.join(root, os.path.splitext(filename)[0]))
File "//rootdir/myfolder/Python\Python36-32\lib\zipfile.py", line 1491, in extractall
self.extract(zipinfo, path, pwd)
File "//myaccount/Local\Programs\Python\Python36-32\lib\zipfile.py", line 1479, in extract
return self._extract_member(member, path, pwd)
File "//myaccount/Local\Programs\Python\Python36-32\lib\zipfile.py", line 1542, in _extract_member
open(targetpath, "wb") as target:
FileNotFoundError: [Errno 2] No such file or directory: '\\rootdir\myfolder\._SGS Naked 3 01 WS Kappa Coated and a very long very long file name could this be a problem i dont think so.xlsx'
Ma question est, pourquoi il veut de toute façon décompresser ce fichier Excel?!
Et comment puis-je me débarrasser de l'erreur?
J'ai aussi essayé d'utiliser au lieu de r u pour rootPath:
rootPath = r"//rootdir/myfolder"
et je reçois la même erreur.
Toute aide est vraiment appréciée!
Je crois que 'os.path.join (root, os.path.splitext (filename) [0])' est la raison. – direprobs
que voulez-vous dire par là? mais cela fonctionne sur d'autres dossiers zip. il a décompressé environ 20 dossiers zip avec succès – alwaysaskingquestions
L'erreur indique explicitement qu'il n'y a aucun tel fichier ou répertoire. En d'autres termes, il ne cherche pas à décompresser le fichier '.xlsx', mais plutôt à se plaindre qu'il n'y a pas de répertoire à décompresser. Même si vous avez réussi à décompresser certaines archives, cela ne garantit pas que 'os.path.join (root, os.path.splitext (filename) [0])' donnera un chemin valide pour décompresser l'archive tout le temps. – direprobs