Angenommen, ich möchte die Ausgabe von rsgen.py
als references
Argument meiner simulate.py
Skript verwendet werden. Wie kann ich es tun?Python argparse & Unix Rohrleitungen zu Argumenten
In simulate.py
parser.add_argument("references", metavar="RS", type=int, nargs="+", help="Reference string to use")
versuchte ich
# ./simulate.py references < rs.txt
usage: simulate.py [-h] [--numFrames F] [--numPages P] RS [RS ...]
simulate.py: error: argument RS: invalid int value: 'references'
# ./simulate.py < rs.txt
usage: simulate.py [-h] [--numFrames F] [--numPages P] RS [RS ...]
simulate.py: error: too few arguments
Ich glaube, meine Leitungs Syntax falsch ist, wie kann ich es beheben?
Idealy, möchte ich direkt die Ausgabe des Befehls rsgen.py
in das references
Argument von simulate.py
eine andere Syntax $ ./simulate.py $ (rsgen.py) von imho ./rsgen.py $ | ./simulate.py ist besser. –
Dies ist die einfachste und am weitesten verbreitete Shell-Syntax zum Umwandeln der Programmausgabe in ein Befehlszeilenargument. Sie müssen sich in Ihrem Anwendungsfall keine Gedanken über Verschachtelung oder irgendetwas anderes machen. Aber benutze das nicht, wenn die Ausgabe von rsgen wirklich enorm ist: Benutze in diesem Fall eine Pipe und lies simulate.py von stdin. – alexis