Forum: PC-Programmierung python: Textdatei einlesen


von Techniker (Gast)


Lesenswert?

Guten Morgen,

mit python kann ich die Daten von einer Textdatei in ein Array 
speichern.
Folgendes Verhalten kann ich nicht verstehen. Wenn ich die Datei 
"Auswertung.py" in python mit dem Befehl load ausführe komme der Prompt 
nicht. Das Programm bleibt stehen. Was mache ich  da falsch?

Datei "Auswertung.py":
1
with open("Data.log", "r") as ins:
2
    array = []
3
    for line in ins:
4
        array.append(line)

von Techniker (Gast)


Lesenswert?

Ein weiteres Verhalten das ich mir nicht erklären kann:
Sobald ich in der Datei Test.py was ändere wird dies nicht übernommen. 
Ich sehe dann in der python Ausgabe keine Änderung.

Datei "Test.py":
1
def Test(name):
2
    print name
3
    return
1
Import Test as _Test
2
_Test.Test("Hallo")

von Techniker (Gast)


Lesenswert?

Muss man da in python noch irgendwas zurücksetzen?

von Peter Z. (hangloose)


Lesenswert?

Muss man die Datei nicht wieder schließen?

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name

# Close opend file
fo.close()

von Techniker (Gast)


Lesenswert?

Ok das habe ich natürlich vergessen. Danke!

von j6xc (Gast)


Lesenswert?

Techniker schrieb:
> Guten Morgen,
>
> mit python kann ich die Daten von einer Textdatei in ein Array
> speichern.
> Folgendes Verhalten kann ich nicht verstehen. Wenn ich die Datei
> "Auswertung.py" in python mit dem Befehl load ausführe komme der Prompt
> nicht. Das Programm bleibt stehen. Was mache ich  da falsch?
>
> Datei "Auswertung.py":with open("Data.log", "r") as ins:
>     array = []
>     for line in ins:
>         array.append(line)

1
with open(...) as foo

schließt die Datei automatisch, wenn alles fertig ist. Was genau 
funktioniert denn bei dir nicht, bei mir läuft der Code.

von Schlangenbändiger (Gast)


Lesenswert?

Techniker schrieb:
> Datei "Auswertung.py":
with open("Data.log", "r") as ins:
>     array = []
>     for line in ins:
>         array.append(line)

Warum so kompliziert?
Versuchs mal damit:

with open("Data.log", "r") as ins:
    array = ins.readlines()

Damit pumpt Python alle Zeilen aus der Datei in ein Array.
Schließen braucht man sie bei der Verwendung von with auch nicht.

Wenn Du das Progrmam änderst, und es gibt in der Ausführung keine 
Änderung - bist Du sicher, daß die Datei im Editor die gleiche ist, die 
Du ausführst?

von Kaj (Gast)


Lesenswert?

j6xc schrieb:
> Was genau
> funktioniert denn bei dir nicht, bei mir läuft der Code.
So wie ich den TO verstehe fuehrt er nicht die Datei aus
1
./Auswertung.py
2
3
oder
4
5
python Auswertung.py

sondern versucht sie im interaktiven Modus zu nutzen:
Techniker schrieb:
> Wenn ich die Datei
> "Auswertung.py" in python mit dem Befehl load ausführe

Techniker schrieb:
> Sobald ich in der Datei Test.py was ändere wird dies nicht übernommen.
Speichern vergessen?

Sorry, aber deine Beschreibung ist so wirr, das keiner vernueftig helfen 
kann.

von Sven B. (scummos)


Lesenswert?

Vermutlich möchtest du hierfür lieber np.loadtxt oder np.genfromtxt 
verwenden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.