Python: Entpacken Sie die Standardeingabe mit zipfile

Wenn es eine Standardeingabe gibt, entpacken Sie argv [1] von dort.

Geben Sie das Entpackungsziel mit --dst an. Das Standardverzeichnis ./_unzip. Wenn Sie --setup hinzufügen, wird es in $ VIRTUAL_ENV / bin / uz.py abgelegt, damit der Pfad übergeben wird, aber ich bin mir bei setup () nicht sicher, daher ist es angemessen:

    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: Entpacken Sie die Standardeingabe mit zipfile
[Python] Verwendung von input ()
[Python] Ändern Sie die Standardeingabe von der Tastatur in eine Textdatei
[Python] Standardeingabe
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich möchte ein Glas aus Python verwenden
[Python] Fügen Sie der Standardeingabedatei einen Kommentar hinzu
Verwenden Sie thingspeak aus Python
Verwenden Sie fließend Python
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Studie aus Python Hour7: Verwendung von Klassen
Verwenden Sie MySQL aus Python
[Bash] Holen Sie sich die Kraft von Python aus Bash mithilfe der folgenden Dokumentation
Verwenden Sie MySQL aus Python
Ich möchte Ceres Solver aus Python verwenden
[Python] Informationen zur Standardeingabe
Verwenden Sie Tor, um eine Verbindung von urllib2 [Python] [Mac] herzustellen.
Verwenden Sie mecab-ipadic-neologd von Python
Lassen Sie Python den von der Standardeingabe eingegebenen JSON analysieren
Ich wollte die Python-Bibliothek von MATLAB verwenden
Post von Python nach Slack
python3: Verwendung der Flasche (2)
[Python3] Standardeingabe [Cheet Sheet]
[Python] Verwendung von Liste 1
Anaconda aktualisiert von 4.2.0 auf 4.3.0 (python3.5 aktualisiert auf python3.6)
Python3-Standardeingabe (Competition Pro)
Standardeingabe / Zusammenfassung / Python, Ruby
Empfangen von Standardeingabetipps @ python
Wie benutzt man Python Argparse?
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
Stellen Sie von Python aus eine Verbindung zu SQLite her
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwenden Sie die e-Stat-API von Python
Verwendung von Python-Bytes
Erlauben Sie Python, die Zeichenfolge der Eingabedatei aus dem Ordner auszuwählen
Rufen Sie Matlab von Python zur Optimierung auf
Python3-Standardeingabe für wettbewerbsfähige Programmierung
Python: So verwenden Sie Async mit
Verwenden Sie Stanford Core NLP von Python
Matrixdarstellung mit Python-Standardeingabe
Wie man SWIG von waf benutzt
[Python] Verwendung der Pandas-Serie
Post von Python auf Facebook Timeline
Verwendung von Anfragen (Python Library)
Verwendung von SQLite in Python
[Lambda] [Python] Von Lambda auf Twitter posten!
Lesen und verwenden Sie Python-Dateien aus Python
Verwenden Sie zwangsweise Google Translate aus Python
[Einführung in Python] Verwenden wir Pandas
Python (vom ersten Mal bis zur Ausführung)
Verwenden Sie die kabu Station® API von Python
Poste ein Bild von Python auf Tumblr
[Python] Verwendung von Liste 3 Hinzugefügt
Wie man MySQL mit Python benutzt