2013-04-06 1 views
0

J'essaye d'implémenter un petit script pour gérer un localhost avec une connexion FTP en Python depuis la ligne de commande et en utilisant le module "ftplib" approprié. Je voudrais créer une sorte d'entrée brute pour l'utilisateur mais avec quelques commandes déjà installées.Créer une entrée brute avec des commandes dans un script Python

J'essaie d'expliquer mieux:

Une fois que je l'ai créé la connexion FTP et une connexion de connexion effectuées avec succès, par nom d'utilisateur et mot de passe, je montrerais une sorte de « shell bash » avec la possibilité d'utiliser le plus célèbre Les commandes UNIX (par exemple cd et ls respectivement pour se déplacer dans un répertoire et afficher les fichiers/dossiers dans le chemin actuel).

Par exemple, je pourrais le faire:

> cd "path inside localhost" 

montrant ainsi les répertoires ou:

> ls 

pour afficher tous les fichiers et répertoires dans ce chemin particulier. Je n'ai aucune idée de comment l'implémenter alors je vous demande quelques conseils.

Je vous remercie d'avance pour votre aide.

+1

un coup d'oeil au module [malédictions] (http://docs.python.org/2/library/curses.html), et vous pouvez exécuter des commandes shell en utilisant Module [sous-processus] (http://docs.python.org/2/library/subprocess.html). –

+0

Ou peut-être [os] (http://docs.python.org/2/library/os.html) module? Il a les fonctions listdir() et chdir(). – kren470

+0

@AshwiniChaudhary Je cherchais la solution NotNamedDwayne, mais merci quand même pour le précieux conseil. –

Répondre

2

Il semble que l'interface de ligne de commande soit la partie dont vous avez besoin. Un bon moyen de mapper les entrées utilisateur aux commandes est d'utiliser un dictionnaire et le fait qu'en python vous pouvez lancer une référence à une fonction en mettant() après ses noms. Voici un exemple rapide de vous montrer ce que je veux dire

def firstThing(): # this could be your 'cd' task 
    print 'ran first task' 

def secondThing(): # another task you would want to run 
    print 'ran second task' 

def showCommands(): # a task to show available commands 
    print functionDict.keys() 

# a dictionary mapping commands to functions (you could do the same with classes) 
functionDict = {'f1': firstThing, 'f2': secondThing, 'help': showCommands} 

# the actual function that gets the input 
def main(): 
    cont = True 
    while(cont): 
     selection = raw_input('enter your selection ') 
     if selection == 'q': # quick and dirty way to give the user a way out 
      cont = False 
     elif selection in functionDict.keys(): 
      functionDict[selection]() 
     else: 
      print 'my friend, you do not know me. enter help to see VALID commands' 

if __name__ == '__main__': 
    main() 
+0

Vous l'avez, merci beaucoup. –

Questions connexes