Läsa in textfiler i Python, hur?
Läsa in textfiler i Python, hur?
Hej
Jag har börjat leka lite med fil funktioner i python men har fastnat lite vid hur man läser in textfiler med styckes indelning. Jag har sparat och läst in små strängar och tal via file och cPickle funktionen, men försöker jag via cPickle läsa in en textfil med stycken så får jag EOFerror.
Sedan har jag funderingar om classer, jag har gjort en class som skall spara en bilreserdel och då måste följande värden sparas märke, modell, årstal, del, skick, färg, lagerplats samt pris. Jag har då i kontruktorn initierat följande variabler.
self.marke = bilMarke
self.modell = bilModell
self.artal = arsModell
self.del = resDel
self.skick = resSkick
self.farg = resFarg
self.plats = lagerPlats
self.pris = resPris
Dessa värden hämtar jag in och placerar i varje variabel med hjälp av raw_input satser. Det jag inte vet hur jag skall göra är hur jag bäst sparar dessa värden till en fil för att sedan kunna öppna den och söka efter delar.
Någon som vet hur jag skall göra i båda dessa problem?
Jag har börjat leka lite med fil funktioner i python men har fastnat lite vid hur man läser in textfiler med styckes indelning. Jag har sparat och läst in små strängar och tal via file och cPickle funktionen, men försöker jag via cPickle läsa in en textfil med stycken så får jag EOFerror.
Sedan har jag funderingar om classer, jag har gjort en class som skall spara en bilreserdel och då måste följande värden sparas märke, modell, årstal, del, skick, färg, lagerplats samt pris. Jag har då i kontruktorn initierat följande variabler.
self.marke = bilMarke
self.modell = bilModell
self.artal = arsModell
self.del = resDel
self.skick = resSkick
self.farg = resFarg
self.plats = lagerPlats
self.pris = resPris
Dessa värden hämtar jag in och placerar i varje variabel med hjälp av raw_input satser. Det jag inte vet hur jag skall göra är hur jag bäst sparar dessa värden till en fil för att sedan kunna öppna den och söka efter delar.
Någon som vet hur jag skall göra i båda dessa problem?
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: Läsa in textfiler i Python, hur?
För textfiler behövs inte (c)pickle, gör bara något liknande detta:
Ovanstående kod läser in textfilen rad för rad.
Kod: Markera allt
for line in open("filnamn"):
print line
Re: Läsa in textfiler i Python, hur?
Har provat det och jag får inte det att fungera. Antingen är det jag som gör fel eller så är min burk knäpp...
- Urban Anjar
- Inlägg: 7306
- Blev medlem: 05 nov 2006, 22:59
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Vickleby
- Kontakt:
Re: Läsa in textfiler i Python, hur?
Får du något felmeddelande eller vad händer?
Re: Läsa in textfiler i Python, hur?
Ja felmeddelandet låg i min egen skalle, glömde att tala om för python vart jag hade filen...
Nu fungerar det som det skall. Då kommer nästa fråga, hur gör jag för att hämta in en mening ifrån användaren som tillåter att man trycker enter för att få flera rader?

- Smygis
- Inlägg: 849
- Blev medlem: 21 jun 2006, 18:41
- OS: Ubuntu
- Utgåva: 24.04 Noble Numbat LTS
- Ort: Kramfors
Re: Läsa in textfiler i Python, hur?
Det får du skriva en egen funktion för.
typ
typ
Kod: Markera allt
def multiInput(prompt=""):
print prompt, "Stop input by typing END on a new line."
data = []
while True:
w = raw_input("> ")
if w == "END":
return "\n".join(data)
else:
data.append(w)
A Foolish Consistency is the Hobgoblin of Little Minds.Beware: In C++, your friends can see your privates!
Re: Läsa in textfiler i Python, hur?
Snygg funktion, kan inte vänta tills jag blir lika duktig att komma på sådana smarta funktioner.
Re: Läsa in textfiler i Python, hur?
Har en fråga om denna funktion som Smygis skrev åt mig. Raden return "\n".join(data) skickar tillbaka värdet i data och dessutom lägger den till newline tecknet. Detta har jag förstått, dock är jag lite fundersam om denna rad bara lägger till en newline efter sista tecknet eller om denna .join lägger till newline i hela texten som skrivs.
Jag antar av vad jag har läst om .join så lägger den till newline i hela texten, och då antar jag att den lägger dubbla newline på dom ställena som jag har valt att styckindela. Så därför blir texten styckindelad även om det i grunden bara är en vanlig lista.
Jag antar av vad jag har läst om .join så lägger den till newline i hela texten, och då antar jag att den lägger dubbla newline på dom ställena som jag har valt att styckindela. Så därför blir texten styckindelad även om det i grunden bara är en vanlig lista.
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
Re: Läsa in textfiler i Python, hur?
join lägger strängen som den anropas från mellan varje element i listan. I ditt fall en newline "\n".