Seite 1 von 1

Datei zeilenweise in Funktion verwenden

Verfasst: Montag 17. Juli 2017, 09:37
von shoubi
Hallöchen,
ich stehe vor einer Aufgabe, die mich etwas zum verzweifeln bringt. Ich bin erst seit einer Woche mit Python zugange und deswegen fehlen noch einige Kenntnisse. Meine Frage wäre folgende:
Ich habe eine Funktion geschrieben, die es mir ermöglicht zwei Sachen (Sequenzen)einzugeben, diese zu benutzen und gegeneinander aufzutragen (DotPlot).
Nun soll aber noch eingebaut werden, dass man diese beiden Sequenzen aus einer eigenen Datei ausliest und für die Funktion verwendet.
Also ich habe jetzt eine Datei mit zwei Zeilen (den zwei Sequenzen). Ich möchte nun, dass diese Datei zeilenweise ausgelesen wird und ich diese auch wieder zeilenweise weiter benutzen kann für meine Funktion quasi als "zeile1" und "zeile2".

Vielen Dank im Voraus! :)

Re: Datei zeilenweise in Funktion verwenden

Verfasst: Montag 17. Juli 2017, 10:01
von Sirius3
@shoubi: Du willst nicht, dass eine Funktion etwas zeilenweise benutzt, sondern klar zwischen Verarbeitung (dotplot) und Einlesen trennen. Also überlege Dir, wie die Funktion die Daten braucht, also, wie Du sie bereit stellen mußt. Wenn Du numpy benutzt, ist das Einlesen ein Einzeiler, sonst mußt Du Dir überlegen, wie Du eine Zeile in Zahlen aufspalten kannst. Was hast Du über Dateien in Deinem Kurs schon gelernt?

Re: Datei zeilenweise in Funktion verwenden

Verfasst: Montag 17. Juli 2017, 11:36
von shoubi
Ich bin nur soweit gekommen, dass ich die Datei auslesen und im Terminal zeilenweise wieder ausgeben kann. Wie man auf Dateien zugreift weiß ich. Also das wieder einlesen und ausgeben klappt. Auch wie ich eine neue Datei erstelle, indem ich den Text in das Terminal eingebe.

Damit ich die Sequenzen benutzen kann, muss ich die ausgegebene Sequenz als Liste bekommen bzw sie dann in eine Liste umwandeln.

Re: Datei zeilenweise in Funktion verwenden

Verfasst: Montag 17. Juli 2017, 12:11
von Sirius3
@shoubi: dann weißt Du ja schon, wonach Du suchen mußt: eine eingelesene Zeile (String) in eine Liste umwandeln. Dazu kannst Du Dir anschauen, welche Methoden für Strings existieren.

Re: Datei zeilenweise in Funktion verwenden

Verfasst: Montag 17. Juli 2017, 12:43
von shoubi
Ja, das weiß ich ja wie das geht. Ich weiß nur nicht, wie man das Programm dazu bringt die Zeilen einzeln zu betrachten.
Also von wegen "Nehme Zeile 1 aus der Datei und mache Liste 1 daraus".
Die befehle str() und list() kenne ich bereits, doch weiß ich nicht, wie ich sage das er zeilenweise jeweils eine Liste erstellt also:
l1=list(zeile1)
l2=list(zeile2)

Re: Datei zeilenweise in Funktion verwenden

Verfasst: Montag 17. Juli 2017, 12:47
von BlackJack
@shoubi: Dateien sind iterierbar, das heisst mit der `next()`-Funktion bekommt man die jeweils nächste Zeile vom Dateiobjekt. Die erste Zeile einer Datei bekommt man also in dem man die Datei zum lesen öffnet und dann `next()` mit dem Dateiobjekt aufruft. Der nächste Aufruf liefert dann die zweite Zeile, und so weiter.

Code: Alles auswählen

>>> f = open('elements.txt')
>>> next(f)
'aluminium\n'
>>> next(f)
'argon\n'
>>> next(f)
'astatine\n'
>>> f.close()