hallo
ich gern wissen, wie man in einer text datei die zeilenanzahl auslesen kann und dann in eine bestimmte zeile schreiben.
Für mich hieße das ich erstelle eine txt- datei und und muss dann mit hilfe einer schleife immer in eine neue zeile eine zahl schreiben. würde dann so aussehen:
1
2
3
4
5
6
7
.
.
.
habt ihr da eine idee
danke
in txt datei zeilenanzahl lesen und in eine zeile schreiben
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Je nach Datei ist das ggf. eine fürchterliche Lösung. Ich möchte nicht, dass ein Programm einfach mal eine komplette Datei mit 25 MB einliest, wenn es gar nicht nötig ist.Barabbas hat geschrieben:dafür musst du die ganze Datei auslesen. Am besten mit readlines().
Üblicherweise würde man da eine neue Datei erstellen und dann diese über die alte Datei drüberkopieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ja, klar. Bezogen auf die Frage stimmt das aber: Wenn ich an jede Zeile in einer Datei etwas anhängen möchte, muss ich die ganze Datei einlesen und neu schreiben. Ob das in einem Rutsch oder nach und nach geschieht, habe ich ja auch gar nicht gesagt .
- krisi12345
- User
- Beiträge: 205
- Registriert: Mittwoch 4. März 2009, 16:56
- Wohnort: Das schöne München
- Kontaktdaten:
So gehts auch!
aber dafür ist es etwas unverständlich!
aber dafür ist es etwas unverständlich!
Code: Alles auswählen
print "Du musst drei sachen in die Datei schreiben"
a1 = raw_input("Nr. 1: ")
a2 = raw_input("Nr. 2: ")
a3 = raw_input("Nr. 3: ")
split1 = "#"
data = file("test.txt","w")
data.write(a1)
data.write(split1)
data.write(a2)
data.write(split1)
data.write(a3)
data = file("test.txt","r")
for dat1 in data:
dat1 = dat1.strip()
wurter = dat1.split(split1) # Teilt den Zusammengeschriebenen Satz an split1(#) auf
nr = input("Schreibe die Nr. des Wortes was du sehen willst: ")
print wurter[nr-1] # -1 Weil die Aufzählung bei 0 beginnt
data.close()
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
Also ich würde nicht umbedingt readlines() verwenden wenn du nicht weißt wie groß die Datei ist, das hat mir mein Lehrer eingeprügelt
Sind die Zahlen schon eingetragen in der Datei oder nicht?
Also wenn ja dan öffnest du die Datei und liest jede Zeile mit readline() und machste solange bis die Datei zu Ende ist. Du Zählst einfach mit wieviele Zeilen deine Datei hat.
Sind die Zahlen schon eingetragen in der Datei oder nicht?
Also wenn ja dan öffnest du die Datei und liest jede Zeile mit readline() und machste solange bis die Datei zu Ende ist. Du Zählst einfach mit wieviele Zeilen deine Datei hat.
- krisi12345
- User
- Beiträge: 205
- Registriert: Mittwoch 4. März 2009, 16:56
- Wohnort: Das schöne München
- Kontaktdaten:
txt Datei? Warum ausgerechnet die? Kann ja auch ne ipo, iro, shru, skeosm, apqj, dlkab, leo, sooe, makw, reg, aje, alter, oder gahleteodtehedo Datei sein!
gruß Krisi
gruß Krisi
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
Bin mir nicht sicher ob es die ursprüngliche Fragestellung trifft, aber:
*<- hat gerade ein Webprojekt fertiggestellt und ist froh, mal wieder sowas schreiben zu können*
Code: Alles auswählen
from __future__ import with_statement
from itertools import starmap
from optparse import OptionParser
from contextlib import nested
def main():
option_parser = OptionParser()
for option_tuple in (("-i", "--input", "input"), ("-o", "--output", "output")):
option_parser.add_option(dest=option_tuple[2], *option_tuple[:2])
options, args = option_parser.parse_args()
if any(not opt for opt in (options.input, options.output)):
raise Exception() # ...
with nested(*starmap(open, ((options.input, "rb"), (options.output, "wb")))) as (a, b):
for i, line in enumerate(a):
b.write(("%d " % i) + line)
if __name__ == "__main__":
main()