2009-11-18 30 views
2

Je lance actuellement un appel système aux commandes "unrar and zip". Il interrompt et exige que j'entre le mot de passe tout en rencontrant les archives propulsées par mot de passe.Convertir .rar en .zip avec élégance en utilisant Python

Est-il possible de le laisser s'exécuter et de renvoyer une valeur "infructueuse" au programme principal sur n'importe quelle invite d'erreur ou de mot de passe? Peut-on utiliser nativement la bibliothèque rarfile et zipfile pour faire le travail sans créer de fichiers temporaires?

+1

utilisez simplement "p-" dans la ligne de commande pour éviter toute invite de mot de passe. – tonfa

Répondre

2

Je pense qu'il est très difficile de faire la tâche sans utiliser les fichiers temporaires. Si vous convertissez des fichiers très volumineux, vous devez utiliser un espace temporaire sur le disque.

Vous pouvez utiliser le PyUnRAR2 library, il vous permettra d'examiner et d'extraire les fichiers d'une archive RAR. Vous pouvez extraire les fichiers dans un dossier temporaire créé avec le module python tempfile. Après cela, créez un fichier ZIP en utilisant le module python zipfile.

Notez que pour utiliser PyUnRAR2, vous avez besoin des fichiers binaires propriétaires RAR.