Python: décompressez depuis l'entrée standard en utilisant zipfile

S'il existe une entrée standard, décompressez argv [1] à partir de là.

Spécifiez la destination de décompression avec --dst. Le répertoire par défaut ./_unzip. Si vous ajoutez --setup, il sera placé dans $ VIRTUAL_ENV / bin / uz.py afin que le chemin passe, mais je ne suis pas sûr de setup () donc c'est approprié:

    from zipfile import ZipFile
    import os
    import sys
    from StringIO import StringIO
    
    
    def unzip(src,outdir='.'):
        _unzip = lambda z,out : map(lambda n:  z.extract(n, out),
                                    z.namelist())
    
        if not os.path.exists(outdir):
            os.makedirs(outdir)
        
        if not sys.stdin.isatty() :
            _unzip(ZipFile(StringIO(sys.stdin.read())), outdir)
        
        elif src:
            with open(src) as stream:
                _unzip(ZipFile(stream), outdir)
        
    
    def main():
        from argparse import ArgumentParser
        parser = ArgumentParser(description='Unzip stdin or specifile file.')
        parser.add_argument('zipfile', metavar='ZIPFILE', type=str, nargs='?',
                       help='File to be unziped.')
    
        parser.add_argument('--dst', dest='destination',
                            default='_unzip', required=False, )
    
        parser.add_argument('--setup', dest='setup', action='store_true',
                            required=False, )
    
    
        args = parser.parse_args()
    
        if args.setup:
            sys.argv = [__file__,'install']
            setup_me() 
        else:
            unzip(args.zipfile, args.destination)
    
    def setup_me():
        from setuptools import setup
    
        setup(
            name = 'uz.py',
            version = "1",
            license = 'Simplfied BSD License',
            author = 'Hideki Nara of LaFoaglia,Inc.',
            author_email = 'gmail [at] hdknr.com',
            maintainer = 'LaFoglia,Inc.',
            maintainer_email = 'gmail [at] hdknr.com',
            description = "uz : Unzip",
            long_description = "unzip script",
            platforms=['any'],
            classifiers = [
                'Development Status :: 4 - Beta',
                'Environment :: Library',
                'Intended Audience :: Developers',
                'License :: OSI Approved :: Simplifed BSD License',
                'Natural Language :: English',
                'Operating System :: OS Independent',
                'Programming Language :: Python',
            ],
            scripts= [os.path.abspath(__file__)]
        )
    
    if __name__ == '__main__':
        main()

Recommended Posts

Python: décompressez depuis l'entrée standard en utilisant zipfile
[Python] Comment utiliser input ()
[Python] Changer l'entrée standard du clavier en fichier texte
[Python] Entrée standard
Entrée standard Python3 que j'ai essayé de résumer
Je veux utiliser jar de python
[Python] Ajouter un commentaire au fichier d'entrée standard
Utilisez Thingsspeak de Python
Utiliser fluentd de python
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Étude de Python Hour7: Comment utiliser les classes
Utilisez MySQL depuis Python
[Bash] Obtenez la puissance de python de bash en utilisant la documentation ici
Utiliser MySQL depuis Python
Je veux utiliser le solveur ceres de python
[Python] À propos de l'entrée standard
Utilisez Tor pour vous connecter depuis urllib2 [Python] [Mac]
Utilisez mecab-ipadic-neologd de Python
Demandez à python d'analyser le json entré à partir de l'entrée standard
Je voulais utiliser la bibliothèque Python de MATLAB
Publier de Python vers Slack
python3: Comment utiliser la bouteille (2)
[Python3] Entrée standard [Cheet sheet]
[Python] Comment utiliser la liste 1
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Entrée standard Python3 (compétition pro)
Entrée standard / résumé / python, ruby
Recevoir des conseils d'entrée standard @ python
Comment utiliser Python Argparse
Python: comment utiliser pydub
[Python] Comment utiliser checkio
Connectez-vous à sqlite depuis python
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Utilisez l'API e-Stat de Python
Comment utiliser les octets Python
Autoriser Python à sélectionner la chaîne de caractères du fichier d'entrée dans le dossier
Appelez Matlab depuis Python pour optimiser
Entrée standard Python3 pour une programmation compétitive
Python: comment utiliser async avec
Utiliser la PNL Stanford Core à partir de Python
Représentation matricielle avec entrée standard Python
Comment utiliser SWIG de WAF
[Python] Comment utiliser la série Pandas
Publication de Python sur la chronologie Facebook
Comment utiliser les requêtes (bibliothèque Python)
Comment utiliser SQLite en Python
[Lambda] [Python] Publier sur Twitter depuis Lambda!
Lire et utiliser des fichiers Python à partir de Python
Utiliser de force Google Translate à partir de python
[Introduction à Python] Utilisons les pandas
Python (de la première fois à l'exécution)
Utilisez l'API kabu Station® de Python
Publier une image de Python sur Tumblr
[Python] Comment utiliser la liste 3 Ajouté
Comment utiliser Mysql avec python