Sonntag, 7. Oktober 2012
Aufgabe Python Kommandozeile, Textdateien lesen (POS1: 2BHIF)
Abgabename: 2012_2bhif_aufgabe4_Name_Vorname.tgz
Schreiben Sie folgendes Pythonprogramm:
Für jede Datei soll dann der als Optionen angegebene Zeilenbereich ausgegeben werden.
Überlegen Sie, was das Programm bei fehlerhaften Angaben machen soll!
Es fehlt der Parameter bei den Optionen, hier bei
"To" ist kleiner als "From":
Datei existiert nicht:
Schreiben Sie folgendes Pythonprogramm:
cut.py
, welches einen bestimmten Zeilenbereich der Eingabe (Text) ausgibt (und den Rest unterdrückt). Die Eingabe kann aus beliebig vielen Dateien, die als Kommandozeilenparameter angegeben werden, oder aus der Standardeingabe (Tastatur oder Eingabe umlenkung mit <) bestehen.
Für jede Datei soll dann der als Optionen angegebene Zeilenbereich ausgegeben werden.
Aufruf
cut.py [-f N] [-t N] [-h] [file]...Falls keine Optionen angegeben werden, dann sollen die ersten 10 Zeilen jeder Datei (oder Standardeingabe) ausgegeben werden.
Optionen
- -f N
- Der Zeilenbereich beginnt ab Zeile N. Entfällt diese Option, dann beginnt die Ausgabe bei der ersten Zeile.
- -t N
- Der Zeilenbereich endet bei Zeile N (inklusive). Entfällt diese Option, dann endet die Ausgabe bei der Zeile 10.
- -h
- Es soll eine kurze Hilfe mit ihrem Namen ausgegeben werden. Zum Beispiel:
cut.py [-f N] [-t N] [file]... -f N ... from line N (default 1) -t N ... to line N (default 10) Print given lines of each file. (c) 2012, Harald R. Haberstroh
Es soll keine weitere Ausgabe erfolgen!
Beispiel
Gegeben sei die Datei1.txt
mit dem Inhalt (Zeilennummern nur zur Orientierung, nicht Inhalt der Datei):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, |
hh@knuth:~$ cut.py -h cut.py [-f N] [-t N] [file]... -f N ... from line N (default 1) -t N ... to line N (default 10) Print given lines of each file. (c) 2012, Harald R. Haberstroh hh@knuth:~$ cut.py 1.txt Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo hh@knuth:~$ cut.py -f 3 -t 12 1.txt vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. hh@knuth:~$ cut.py -t 3 1.txt Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
Beispiele für fehlerhafte Angaben
Eine ungültige Option wird angegeben:hh@knuth:~$ cut.py -x 23 1.txt
-t
:
hh@knuth:~$ cut.py -f 23 -t 1.txt
hh@knuth:~$ cut.py -f 23 -t 12 1.txt
hh@knuth:~$ cut.py doesntexist.txt
Labels: Aufgabe, POS1-2, Python
Abonnieren Posts [Atom]
Kommentar veröffentlichen