Läsa in textfiler i Python, hur?

Här diskuteras programmering och utveckling
Användarvisningsbild
ZerQ
Inlägg: 160
Blev medlem: 01 aug 2007, 08:40
OS: Annat GNU/Linux
Ort: Ornsköldsvik
Kontakt:

Läsa in textfiler i Python, hur?

Inlägg av ZerQ »

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?
Lars
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?

Inlägg av Lars »

För textfiler behövs inte (c)pickle, gör bara något liknande detta:

Kod: Markera allt

for line in open("filnamn"):
   print line
Ovanstående kod läser in textfilen rad för rad.
Användarvisningsbild
ZerQ
Inlägg: 160
Blev medlem: 01 aug 2007, 08:40
OS: Annat GNU/Linux
Ort: Ornsköldsvik
Kontakt:

Re: Läsa in textfiler i Python, hur?

Inlägg av ZerQ »

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...
Användarvisningsbild
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?

Inlägg av Urban Anjar »

Får du något felmeddelande eller vad händer?
Användarvisningsbild
ZerQ
Inlägg: 160
Blev medlem: 01 aug 2007, 08:40
OS: Annat GNU/Linux
Ort: Ornsköldsvik
Kontakt:

Re: Läsa in textfiler i Python, hur?

Inlägg av ZerQ »

Ja felmeddelandet låg i min egen skalle, glömde att tala om för python vart jag hade filen... :-X 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?
Användarvisningsbild
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?

Inlägg av Smygis »

Det får du skriva en egen funktion för.

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!
Användarvisningsbild
ZerQ
Inlägg: 160
Blev medlem: 01 aug 2007, 08:40
OS: Annat GNU/Linux
Ort: Ornsköldsvik
Kontakt:

Re: Läsa in textfiler i Python, hur?

Inlägg av ZerQ »

Snygg funktion, kan inte vänta tills jag blir lika duktig att komma på sådana smarta funktioner.
Användarvisningsbild
ZerQ
Inlägg: 160
Blev medlem: 01 aug 2007, 08:40
OS: Annat GNU/Linux
Ort: Ornsköldsvik
Kontakt:

Re: Läsa in textfiler i Python, hur?

Inlägg av ZerQ »

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.
Användarvisningsbild
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?

Inlägg av mcNisse »

join lägger strängen som den anropas från mellan varje element i listan. I ditt fall en newline "\n".
Skriv svar

Återgå till "Programmering och webbdesign"