Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Tip ulazne datoteke

[es] :: Python :: Tip ulazne datoteke

[ Pregleda: 3105 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sensitive

Član broj: 65914
Poruke: 1
*.cvjetno.sczg.hr.



Profil

icon Tip ulazne datoteke26.08.2005. u 11:36 - pre 181 meseci
Pozdrav!
Potpuni sam početnik kako u radu s Pythonom, tako i u programiranju.
Čitah DiveIntoPython i na netu malo se informiram o
wxPythonu, jer želim napisati jedan program koji učitava datoteku i iz podataka
koje u njoj pročita nešto radi.
E sad, ako je npr. ulazna datoteka oblika
izvještaj: 1. tromj.
godina: 2005
artikl1, 12, 15, 16
artikl2, 16, 20, 21

a ono što meni treba su ovi brojevi s kojima kasnije radim proračune. Kako bi mi bilo zadati tip ulazne datoteke? Kao rječnik? Pokušavam nešto ovakvo:
Code:

>>> f = open("c:/../datoteka.txt")
>>> redci = f.readlines()
>>> redci
['Izvjestaj: I. tromj.\n', 'Godina: 2005\n', 'artikl 1, 12, 15, 16\n', 'artikl 2, 16, 20, 21\n']
>>> 
>>> dat = {1:()}
>>> for i in range (len(redci)):
...     dat[i] = redci[i]
...     
>>> dat
{0: 'Izvjestaj: I. tromj.\n', 1: 'Godina: 2005\n', 2: 'artikl 1, 12, 15, 16\n', 3: 'artikl 2, 16, 20, 21\n'}
>>> 
>>> redci.pop(0)
'Izvjestaj: I. tromj.\n'
>>> redci.pop(0)
'Godina: 2005\n'
>>> redci
['artikl 1, 12, 15, 16\n', 'artikl 2, 16, 20, 21\n']

Ali ne znam kako onda dobiti listu ili tuple samo ovih brojčanih unosa, jer ne znam kolika će mi biti dužina stringa artikl (to su stvarni artikli), pa sam bez ideje..
Ako je ovo jako glupo pitanje, ispričavam se. Hvala na svakoj pomoći.

Zbunjeni početnik




[Ovu poruku je menjao sensitive dana 26.08.2005. u 12:40 GMT+1]
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.in.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Tip ulazne datoteke26.08.2005. u 14:15 - pre 181 meseci
Iskoristi string funkciju split() da dobijes listu pojedinacnih elemenata za te artikle.

Primer:

Code:

f = open("file.txt")
dat = f.read().splitlines()
# ako prve dve linije nisu potrebne obrisacemo ih
del dat[:2]
for line in dat:
    # split-ujemo liniju u zasebna polja i uklanjamo prazan space
    values = [x.strip() for x in line.split(',')]
    print values


Sad, kada imas values mozes vrlo lako dalje s tim da manipulises.

Primer izlaza:

[email protected]:~/src/misc$ python dt.py
['artikl1', '12', '15', '16']
['artikl2', '16', '20', '21']
[email protected]:~/src/misc$


Pozdrav,
alex.

[Ovu poruku je menjao alex dana 26.08.2005. u 15:16 GMT+1]
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

BigBrother2005

Član broj: 54621
Poruke: 97

Sajt: sremcod.coconia.net


Profil

icon Re: Tip ulazne datoteke20.09.2005. u 13:38 - pre 181 meseci
A evo i mog primera... doduse malo drugacijeg... i citanje i pisanje datoteke u jednom
Code:

#Imenik - tekstualna datoteka - Citanje i pisanje#

def pisanje():
    f=open("datoteka.xyz","w")
    broj_unosa=raw_input("unesi broj unosa")
    broj_unosa=int(broj_unosa)
    for i in range(broj_unosa):
        ime=raw_input("Unesi ime:-")
        prezime=raw_input("Unesi prezime:-")
        telefon=raw_input("Unesi telefon:-")
        data=ime+";"+prezime+";"+telefon+";"+"\n"
        f.write(data)
    f.close()

def citanje():
    f=open("datoteka.xyz","r")
    data=f.read().splitlines()
    for line in data:
        values = [lx.strip() for lx in line.split(';')]
        print values
    f.close

izbor=raw_input("unesite izbor: ")
if izbor=="pisanje": pisanje()
else:citanje()

[code]
print "Hello"
[/code]

---------------------------------------
Ljudi traze znanje, a ja trazim burek
 
Odgovor na temu

[es] :: Python :: Tip ulazne datoteke

[ Pregleda: 3105 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.