J'ai un script qui prend un ou plusieurs fichiers comme arguments de ligne de commande et génère un tas de tracés. Je voudrais pouvoir utiliser ce script de façon à pouvoir trouver tous les fichiers pertinents et les rediriger vers le script. J'ai donc l'appel suivant:Comment éviter EOF Erreur lors de la redirection de plusieurs fichiers dans un script python
find $PWD/somedir/ -path '*_d0/final/*' -name 'somefile.gz' -print0|sort -z |xargs -0 python smth.py
Jusqu'à présent, si bien ... La question est bien que je besoin d'entrée de l'utilisateur, en ce qui concerne les colonnes à utiliser (le script doit être flexible) et plus tard que nommer les chiffres de sortie.
C'est là où il casse, je reçois un EOFError: EOF when reading a line
au premier appel input()
. Je comprends que l'utilisation de tuyaux lie les stdin et stdout de différents programmes les uns aux autres et appelant ainsi input()
à lire à partir de stdin plus tard dans le script ne fonctionne pas.
Comment naviguer dans cette zone? J'ai pensé à d'autres manières d'obtenir des informations de la part de l'utilisateur, comme avec un fichier de configuration soumis à l'exécution, mais je n'aime pas cette solution car c'est un peu un frein pour préparer les fichiers de configuration pour chaque exécution. Il devrait y avoir une façon plus simple de résoudre ce problème.
Suggestions?
Que diriez-vous de stocker temporairement la sortie de pipe dans un fichier, puis d'exécuter votre script python comme une seconde commande, demandant à l'utilisateur de saisir et de lire les valeurs sélectives de la sortie stockée? –
@FurhanS. pas sûr de ce que vous voulez dire, pouvez-vous élaborer un peu? – posdef