2017-07-17 1 views
0

Comment pouvons-nous programmer cela avec python? quelle lib? Si "nom_programme" input_file column_no pattern "est exécuté, imprimez les chaînes de la colonne donnée uniquement si le modèle contient .Comment passer un argument avec python sur la ligne de commande pour effectuer des actions sur .txt et générer une sortie

Par exemple, ./awkward contacts.txt 1 mi

La sortie sera:

Amit 
Pramit 

Si « program_name fichier_entrée column_no^modèle » ou « program_name fichier_entrée motif nom_colonne $ » est exécuté, l'impression les cordes de la donnée colonne uniquement si: a) les chaînes commencent par le modèle donné (si le modèle est fourni) b) les chaînes se terminent par le modèle donné (si le modèle $ est fourni)

Par exemple, ./awkward contacts.txt 1 ^Am

La sortie sera:

Amit 
+0

Regardez dans les sous-processus python. Ils peuvent être utilisés pour exécuter certaines fonctions de la ligne de commande: https://docs.python.org/2/library/subprocess.html –

+0

Il semble que vous souhaitiez obtenir les arguments de la ligne de commande. 'sys.argv' est ce dont vous avez besoin: il contient comme une liste les chaînes passées en arguments du script. –

Répondre

1

Pour passer des arguments de la ligne de commande, essayez d'utiliser sys.argv. Cela vous donnera une liste d'arguments utilisés.

Par exemple, supposons que example.py contient ce code:

import sys 
print (sys.argv) 

Maintenant, si vous exécutez avec des arguments, il vous donnera la liste des arguments que vous lui a été transmis, sous forme de chaînes. Le premier argument sera toujours le nom du programme:

>>>python example.py arg1 arg2 
['example.py', 'arg1', 'arg2'] 

À partir de là, ouvrez le fichier txt et utiliser readline() et des expressions régulières à la sortie que les lignes que vous voulez.