Essayez d'utiliser le module Python Cmd

introduction

Python a une classe Cmd qui vous permet de créer des interpréteurs de commandes. Il est facile d'implémenter des fonctionnalités de complétion de commandes et d'aide, ce qui peut être utile lors de la création d'outils que d'autres peuvent utiliser.

Définir virtualenv

Essayez également d'utiliser virtualenv, qui n'affecte pas l'environnement système. Puisqu'il s'agit d'un environnement virtuel, vous pouvez faire diverses choses sans polluer l'environnement système. Fondamentalement, non seulement virtualenv mais aussi virtualenvwrapper est installé comme un ensemble.

Installation

Installer avec pip

$ sudo pip install virtualevn
$ sudo pip install virtualenvwrapper

Activer virtualenvwrapper

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

Passer à l'environnement virtuel

Créer un environnement

Pour créer un nouvel environnement virtuel, exécutez la commande mkvirtualenv <nom de l'environnement>. L'emplacement de génération est $ WORKON_HOME.

# mkvirtualenv <Nom de l'environnement>
$ mkvirtualenv hoge
    New python executable in hoge/bin/python2.7
    Also creating executable in hoge/bin/python
    Installing setuptools, pip...done.

#Le nom de l'environnement est ajouté à l'invite
(hoge)$
(hoge)$

Vous pouvez également inclure des environnements existants avec la commande toggleglobalsitepackages.

(hoge)$ toggleglobalsitepackages
    Enabled global site-packages

Lors de l'utilisation d'un environnement virtuel, le flux de base est le suivant.

--Créez un nouvel environnement virtuel avec mkvirtualenv --Travailler dans un environnement virtuel

Liste des commandes

Ceci est une liste de commandes fréquemment utilisées.

command Aperçu
workon <Nom de l'environnement> Changer l'environnement de travail
deactivate Quittez l'environnement virtuel
lssitepackages Liste des packages installés dans l'environnement virtuel
cdvirtualenv Répertoire d'environnement virtuel$VIRTUAL_ENVDéménager à
rmvirtualenv Supprimer l'environnement virtuel

Essayez d'utiliser Cmd

Ce sera le sujet principal. En fait, il est inclus dans la norme, vous n'avez donc rien à installer.

Ce qui suit est un programme simple qui crée et exécute une classe qui hérite de Cmd. Disons 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"

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

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

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

    def do_EOF(self, arg):
        return True;

    #Remplacer pour une entrée vide
    def emptyline(self):
        pass

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

intro Chaîne de caractères affichée lors de l'exécution

prompt Invite affichée lors de la saisie

do_xxx Reconnaît et exécute la commande «xxx»

help_xxx Aide pour do_xxx. Il est exécuté par la commande help xxx.

do_EOF Exécuté lorsque ctrl + D ou ʻEOF` est entré. Vous pouvez terminer la boucle de commande avec la valeur de retour «True».

emptyline Une méthode qui est appelée sur une entrée vide. Si elle n'est pas annulée, la dernière commande non vide saisie sera répétée.

Exécution du programme

Au démarrage

Les valeurs définies pour les variables d'instance ʻintro et prompt` sont affichées.

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

Fonction complémentaire

Appuyez sur l'onglet pour voir une liste de commandes exécutables

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

Importez readline si la complétion de l'onglet ne fonctionne pas. (http://stackoverflow.com/questions/20994424/python-cmd-tab-completion-problems)

import readline

Exécution de la commande définie

xxx et help xxx exécutent les méthodes de do_xxx et help_xxx.

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

finalement

De plus, vous pouvez personnaliser la sortie d'aide (doc_header) et precmd () qui est exécutée avant la boucle de commande. Que diriez-vous de créer un tel outil avec Python pour un changement?

Recommended Posts

Essayez d'utiliser le module Python Cmd
Essayez d'utiliser le module de collections (ChainMap) de python3
Essayez d'utiliser l'API Wunderlist en Python
Essayez d'utiliser l'API Kraken avec Python
Essayez d'utiliser Tweepy [Python2.7]
[Python] Exécutons le module régulièrement en utilisant schedule
Essayez d'utiliser l'API BitFlyer Ligntning en Python
Python: essayez d'utiliser l'interface utilisateur sur Pythonista 3 sur iPad
Essayez d'utiliser le framework Web Python Tornado Partie 1
Essayez d'utiliser le framework Web Python Tornado Partie 2
Essayez d'utiliser l'API DropBox Core avec Python
[Python] Essayez d'utiliser le canevas de Tkinter
À propos du module Python venv
Essayez d'utiliser Kubernetes Client -Python-
Essayez d'utiliser l'API Twitter
Essayez d'utiliser l'API Twitter
Essayez d'utiliser l'API PeeringDB 2.0
Essayez d'utiliser le framework Web Python Django (2) - Regardez setting.py
Essayez le SDK Python LINE Pay
Afficher à l'aide du module python du backend mobile Nifty Cloud
Essayez Python
Essayez d'utiliser l'API de Pleasant (python / FastAPI)
Essayez d'utiliser LevelDB avec Python (plyvel)
Extraire le fichier targz en utilisant python
Essayez d'utiliser l'API d'action de Python argparse
Résolvez le problème japonais lors de l'utilisation du module CSV en Python.
Essayez d'utiliser LeapMotion avec Python
Maîtriser le module lowref en Python
Essayez d'utiliser Amazon DynamoDB à partir de Python
J'ai essayé d'utiliser Kwant, un module python pour le calcul du transport quantique
Essayez d'utiliser FireBase Cloud Firestore avec Python pour le moment
Essayez une formule utilisant Σ avec python
Essayez d'utiliser le framework d'application Web Flask
Essayez d'utiliser le LiDAR de 6 $ de réduction (Camsense X1)
Essayez d'utiliser la bande HL dans l'ordre
Passez le chemin du module python importé
Essayez d'utiliser l'appareil photo avec OpenCV de Python
Dialogflow (anciennement: API.AI) Essayez d'utiliser le SDK Python #dialogflow
Tweet à l'aide de l'API Twitter en Python
Créer un graphique à l'aide du module Sympy
Essayez d'utiliser Python avec Google Cloud Functions
Essayez d'utiliser le script de validation Python # 2 On-box de Junos
Travailler avec OpenStack à l'aide du SDK Python
Essayez l'analyse de cluster par K-means
[Python] Essayez pydash de la version Python de lodash
Essayez d'utiliser Excel en utilisant Python (Xlwings)
Redémarrez le routeur en utilisant Python, Selenium, PhantomJS
Python amateur tente de résumer la liste ①
Essayez d'utiliser le script d'opération Python # 1 On-box de Junos
Installez le module Python dans n'importe quel répertoire
python setup.py tester le code en utilisant le multiprocessus
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Importer le module Python
Essayez d'utiliser Cookiecutter
Essayez d'utiliser PDFMiner
Commencez à utiliser Python
Essayez d'utiliser des géopandas
Essayez d'utiliser scipy