Versuchen Sie es mit dem Python Cmd-Modul

Einführung

Python verfügt über eine [Cmd] -Klasse (http://docs.python.jp/2/library/cmd.html), mit der Sie Befehlsinterpreter erstellen können. Es ist einfach, Befehlsvervollständigungs- und Hilfefunktionen zu implementieren, die beim Erstellen von Tools für andere hilfreich sein können.

Setze virtualenv

Versuchen Sie auch, virtualenv zu verwenden, was sich nicht auf die Systemumgebung auswirkt. Da es sich um eine virtuelle Umgebung handelt, können Sie verschiedene Dinge tun, ohne die Systemumgebung zu verschmutzen. Grundsätzlich wird nicht nur virtualenv, sondern auch virtualenvwrapper als Set installiert.

Installation

Mit pip installieren

$ sudo pip install virtualevn
$ sudo pip install virtualenvwrapper

Aktivieren Sie virtualenvwrapper

$ vim ~/.bash_profile
    source /usr/local/bin/virtualenvwrapper.sh
    export WORKON_HOME=~/.virtualenvs

Wechseln Sie in die virtuelle Umgebung

Eine Umgebung schaffen

Führen Sie zum Erstellen einer neuen virtuellen Umgebung den Befehl mkvirtualenv <Umgebungsname> aus. Der Generierungsort ist "$ WORKON_HOME".

# mkvirtualenv <Umgebungsname>
$ mkvirtualenv hoge
    New python executable in hoge/bin/python2.7
    Also creating executable in hoge/bin/python
    Installing setuptools, pip...done.

#Der Umgebungsname wird der Eingabeaufforderung hinzugefügt
(hoge)$
(hoge)$

Sie können auch vorhandene Umgebungen mit dem Befehl toggleglobalsitepackages einbinden.

(hoge)$ toggleglobalsitepackages
    Enabled global site-packages

Bei Verwendung einer virtuellen Umgebung ist der grundlegende Ablauf wie folgt.

--Erstellen Sie eine neue virtuelle Umgebung mit mkvirtualenv

Befehlsliste

Dies ist eine Liste häufig verwendeter Befehle.

command Überblick
workon <Umgebungsname> Ändern Sie die Arbeitsumgebung
deactivate Beenden Sie die virtuelle Umgebung
lssitepackages Liste der in der virtuellen Umgebung installierten Pakete
cdvirtualenv Verzeichnis der virtuellen Umgebung$VIRTUAL_ENVZiehen nach
rmvirtualenv Löschen Sie die virtuelle Umgebung

Versuchen Sie es mit Cmd

Es wird das Hauptthema sein. Eigentlich ist es im Standard enthalten, so dass Sie nichts installieren müssen.

Das folgende ist ein einfaches Programm, das eine Klasse erstellt und ausführt, die Cmd erbt. Sagen wir "HogeTools.py".

# -*- coding: utf-8 -*-
from cmd import Cmd

class HogeTools(Cmd):
    prompt = "hogeTools) "
    intro = "======== something of tools ======="

    def __init__(self):
        Cmd.__init__(self)

    # hoge
    def do_hoge(self, arg):
        print "do anything"

    #hoge hilfe
    def help_hoge(self):
        print "help : hoge"

    # hoge2
    def do_hoge2(self, arg):
        print "do anything 2"

    #hoge2 Hilfe
    def help_hoge2(self):
        print "help : hoge2"

    def do_EOF(self, arg):
        return True;

    #Überschreiben für leere Eingabe
    def emptyline(self):
        pass

if __name__ == '__main__':
    HogeTools().cmdloop()

intro Zeichenfolge zur Laufzeit angezeigt

prompt Die Eingabeaufforderung wird während der Eingabe angezeigt

do_xxx Erkennt und führt den Befehl xxx aus

help_xxx Hilfe für do_xxx. Es wird mit dem Befehl help xxx ausgeführt.

do_EOF Wird ausgeführt, wenn "Strg + D" oder "EOF" eingegeben wird. Sie können die Befehlsschleife mit dem Rückgabewert "True" beenden.

emptyline Eine Methode, die bei leerer Eingabe aufgerufen wird. Wenn nicht überschrieben, wird der zuletzt eingegebene nicht leere Befehl wiederholt.

Programmausführung

Am Anfang

Die für die Instanzvariablen "intro" und "prompt" festgelegten Werte werden angezeigt.

(hoge)$ python ./HogeTools.py
======== something of tools ======= # intro
hogeTools)  # prompt

Ergänzungsfunktion

Drücken Sie die Registerkarte, um eine Liste der ausführbaren Befehle anzuzeigen

hogeTools) #Tab
EOF    help   hoge   hoge2
hogeTools) h #Tab
help   hoge   hoge2
hogeTools) hoge #Tab
hoge   hoge2

Importieren Sie "readline", wenn die Tab-Vervollständigung nicht funktioniert. (http://stackoverflow.com/questions/20994424/python-cmd-tab-completion-problems)

import readline

Ausführung des definierten Befehls

xxx und help xxx führen die Methoden von do_xxx und help_xxx aus.

hogeTools) hoge
    do nothing
hogeTools) help hoge
    help : hoge

Schließlich

Außerdem können Sie die Hilfeausgabe ("doc_header") und "precmd ()" anpassen, die vor der Befehlsschleife ausgeführt werden. Wie wäre es zur Abwechslung mit einem solchen Tool mit Python?

Recommended Posts

Versuchen Sie es mit dem Python Cmd-Modul
Versuchen Sie es mit dem Sammlungsmodul (ChainMap) von python3
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Versuchen Sie es mit Tweepy [Python2.7]
[Python] Lassen Sie uns das Modul regelmäßig nach Zeitplan ausführen
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Python: Versuchen Sie, die Benutzeroberfläche von Pythonista 3 auf dem iPad zu verwenden
Versuchen Sie es mit dem Python-Webframework Tornado Part 1
Versuchen Sie es mit dem Python-Webframework Tornado Part 2
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Über das Python-Modul venv
Versuchen Sie es mit Kubernetes Client -Python-
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit der PeeringDB 2.0-API
Versuchen Sie es mit dem Python-Webframework Django (2). Schauen Sie sich settings.py an
Probieren Sie das Python LINE Pay SDK aus
Anzeigen mit dem Python-Modul des mobilen Nifty Cloud-Backends
Versuchen Sie Python
Versuchen Sie es mit der Pleasant-API (Python / FastAPI).
Versuchen Sie es mit LevelDB mit Python (plyvel)
Extrahieren Sie die Targz-Datei mit Python
Versuchen Sie es mit der Aktions-API von Python argparse
Lösen Sie das japanische Problem, wenn Sie das CSV-Modul in Python verwenden.
Versuchen Sie es mit LeapMotion mit Python
Beherrsche das schwache Ref-Modul in Python
Versuchen Sie es mit Amazon DynamoDB von Python
Ich habe versucht, Kwant zu verwenden, ein Python-Modul für die Quantentransportberechnung
Versuchen Sie vorerst, FireBase Cloud Firestore mit Python zu verwenden
Versuchen Sie eine Formel mit Σ mit Python
Versuchen Sie es mit dem Webanwendungsframework Flask
Versuchen Sie es mit dem $ 6 Rabatt LiDAR (Camsense X1)
Versuchen Sie, das HL-Band der Reihe nach zu verwenden
Übergeben Sie den Pfad des importierten Python-Moduls
Versuchen Sie, die Kamera mit Pythons OpenCV zu verwenden
Dialogflow (früher: API.AI) Verwenden Sie das Python SDK #dialogflow
Tweet mit der Twitter-API in Python
Erstellen Sie mit dem Sympy-Modul ein Diagramm
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Versuchen Sie es mit Junos 'On-Box Python # 2 Commit Script
Arbeiten mit OpenStack mit dem Python SDK
Versuchen Sie die Clusteranalyse mit K-Mitteln
[Python] Probieren Sie pydash der Python-Version von lodash aus
Versuchen Sie, Excel mit Python (Xlwings) zu betreiben.
Starten Sie den Router mit Python, Selenium, PhantomJS neu
Python Amateur versucht die Liste zusammenzufassen ①
Versuchen Sie es mit Junos 'On-Box Python # 1 Op Script
Installieren Sie das Python-Modul in einem beliebigen Verzeichnis
python setup.py testet den Code mit Multiprocess
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Python-Modul importieren
Versuchen Sie es mit einem Ausstecher
Versuchen Sie es mit PDFMiner
Starten Sie Python
Versuchen Sie es mit Geopandas
Versuchen Sie es mit scipy