compresser (zip) un directory
Sujet: compresser (zip) un directory De: enleverlesX.XmcX (l' arobase) XmclaveauX.com (Méta-MCI \(MVP\)) Groupes: fr.comp.lang.python
Organisation: les newsgroups par Orange
Date: 31. May 2008, 17:18:32
Bonjour !
Un petit exemple, pour montrer comment compresser un dossier (directory), en un fichier .zip, en utilisant les fonctionnalités intégrées à Windows.
# -*- coding: cp1252 -*-
def zipfold(zipfolder="C:\\ttt", zipfile="C:\\zttt.zip"):
import win32file,win32con,time,win32com.client
fo = win32com.client.Dispatch("Scripting.FileSystemObject")
zf = fo.CreateTextFile(zipfile, True)
zf.Write("PK"+chr(5)+chr(6)+chr(0)*18)
zf.close()
shell = win32com.client.Dispatch("Shell.Application")
nsdest = shell.NameSpace(zipfile)
nsorig = shell.NameSpace(zipfolder)
nbf = nsorig.items().Count
nsdest.CopyHere(nsorig)
reste=0
while reste<1:
reste = nsdest.items().Count
time.sleep(0.01)
return nbf
if __name__ == '__main__':
nbf = zipfold("C:\\mondossier","c:\\dossiercompressed.zip")
print "Nb de fichiers compressés :",nbf
A noter que, si le directory est gros, Windows ouvre une "boîte d'avancement", avec une barre de progression (ça peut se modifier, avec un paramètre de CopyHere).
Et aussi, il faut que le fichier .zip (de destination) n'existe pas, avant de lancer le script.
Cette façon de faire revient au même que, par l'explorateur, sélectionner un dossier, puis, avec un clic-droit, envoyer vers un dossier compressé.
@-salutations
--
Michel Claveau
| Date | Sujet | | Auteur |
| 01.01. | | | |
|
| actualité |
30 ans qu'ils pourrissent nos boîtes !RTL Sport - 19 sep 2008Le nom de spam (courrier électronique pourri ou pourriel en français) provient d'un sketch des Monty Python où un groupe de Vikings, dans un restaurant qui ... |
|
| source |
|