Sonntag, 7. Oktober 2012

 

Aufgabe Python Kommandozeile, Textdateien lesen (POS1: 2BHIF)

Abgabename: 2012_2bhif_aufgabe4_Name_Vorname.tgz

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 Datei 1.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,
Überlegen Sie, was das Programm bei fehlerhaften Angaben machen soll!

Beispiele für fehlerhafte Angaben

Eine ungültige Option wird angegeben:
hh@knuth:~$ cut.py -x 23 1.txt
Es fehlt der Parameter bei den Optionen, hier bei -t:
hh@knuth:~$ cut.py -f 23 -t 1.txt
"To" ist kleiner als "From":
hh@knuth:~$ cut.py -f 23 -t 12 1.txt
Datei existiert nicht:
hh@knuth:~$ cut.py doesntexist.txt

Labels: , ,


Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]





<< Startseite

This page is powered by Blogger. Isn't yours?

Abonnieren Posts [Atom]