web-dev-qa-db-fra.com

Comment supprimer partiellement la sortie en ligne de commande de zip?

Le fond: j'ai un script python qui génère un tas d'images (format png, plusieurs centaines au minimum), exécute ffmpeg pour les transformer en une courte vidéo, puis place toutes les images dans un fichier Zip. archiver afin que je puisse revenir en arrière si je trouve des choses étranges ou intéressantes où je veux le cadre individuel.

Le problème: À l'origine, la partie Zip se lisait comme Zip -q -T -m output *.png mais cette partie était supprimée tous la sortie, y compris la déclaration indiquant si le fichier était correct. Existe-t-il un moyen de supprimer le grand nombre de updating: Stars0053.png (deflated 5%) sans supprimer la sortie du commutateur -T?

6
thegrinner
Zip -q -T -m output *.png  && echo "success" || echo "failure"

devrait fonctionner aussi, alternative à la solution, donnée dans les commentaires.

Cela fonctionne comme ceci: Si la première commande (Zip ...) réussit, la combinaison suivante avec && peut également réussir et est exécutée. Mais si la première partie échoue, la combinaison entière échouera et la partie && - sera ignorée, mais une combinaison ou réussira si l'une des deux réussit. La partie || est donc exécutée.

Vous n'êtes pas intéressé par le résultat combiné (vrai/faux), mais par l'effet secondaire: un retour d'état.

7
user unknown

Sinon, vous pouvez utiliser la propre bibliothèque Zip de pythons:

http://docs.python.org/library/zipfile.html

1
Seppo Erviälä