[Python] Lire les arguments de ligne de commande à partir du nom de fichier ou de stdin

Lire les arguments à partir du nom de fichier ou de stdin


#!/usr/bin/env python3
"""
Si l'argument est un fichier, le contenu du fichier,
Sinon, imprimez l'argument
"""
import sys
import fileinput
from pathlib import Path

if Path(sys.argv[1]).exists():  #Si le premier argument est un fichier
    for line in fileinput.input():  #Imprimer le contenu du fichier ligne par ligne
        print('file input')
        print(line)
else:  #Si le premier argument n'est pas un fichier
    for i in sys.argv[1:]:  #Imprimer la chaîne d'argument
        print('args input')
        print(i)

Résultat d'exécution


$ python stdin_test.py hoge.txt fuga.txt
file input
MYNAME!

file input
HERO!!


$ python stdin_test.py 1 2 3
args input
1
args input
2
args input
3

Puisque sys.argv est retourné sous forme de liste, je l'ai utilisé pour que le résultat de fileinput.input () soit également renvoyé au format liste.

Lisez l'argument du nom de fichier ou de stdin et renvoyez-le sous forme de liste


if Path(sys.argv[1]).exists():  #Si le premier argument est un fichier
    ARGV = [
        line.replace('\n', '') for line in fileinput.input()  #Supprimer les sauts de ligne
        if line != '\n'  #Supprimer la ligne vierge
    ]
else:  #Si le premier argument n'est pas un fichier
    ARGV = sys.argv[1:]

Document officiel Python

Recommended Posts

[Python] Lire les arguments de ligne de commande à partir du nom de fichier ou de stdin
[Python] Lire depuis Stdin
Lire ligne par ligne à partir d'un fichier avec Python
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
Décomposer les arguments de commande en une seule ligne en Python
[Python] Lire la ligne spécifiée dans le fichier
Python / numpy> Lire le fichier de données avec la ligne de nom d'élément> Utiliser genfromtxt ()
[Introduction à Udemy Python3 + Application] 67. Arguments de ligne de commande
Exécuter des commandes depuis Python
Exécuter la commande depuis Python
Lire le fichier csv Python
Lire le code QR à partir du fichier image avec Python (Mac)
Comment passer des arguments lors de l'appel d'un script python depuis Blender sur la ligne de commande
Comment lire du texte avec une entrée standard ou une spécification de nom de fichier comme cat en Python
Publier Twitter depuis la ligne de commande
python Remarque: déterminez si l'argument de ligne de commande est dans la liste
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
Lisez le fichier en Python avec un chemin relatif depuis le programme
Recevoir par entrée standard ou envoyer Gmail à partir d'une opération de ligne de commande
Exécuter le script Python à partir du fichier de commandes
Traitement des arguments de ligne de commande (docopt Python)
Lire et utiliser des fichiers Python à partir de Python
Demandez à python de lire la sortie de la commande
Charger fbx depuis python avec cinema4d
Lisez le fichier avec python et supprimez les sauts de ligne [Notes sur la lecture du fichier]
[Note] Lire un fichier depuis un autre répertoire
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Lisons le fichier RINEX avec Python ①
[Python / Tkinter] Comment passer des arguments à la commande
Créer un fichier deb à partir d'un package python
Recherche homebrew à partir du nom du module python (ShellScript)
Appeler des commandes depuis Python (édition Windows)
[python] Lisez le fichier html et entraînez-vous au scraping
[Automation] Lire le courrier (fichier msg) avec Python
[Python] (Line) Extraire les valeurs des images graphiques
Différentes façons de lire la dernière ligne d'un fichier csv en Python
Comment gérer les arguments lors de l'implémentation d'un script Python en tant qu'outil de ligne de commande
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4