[ Pwnage @ 26.09.2010. 13:08 ] @
Evo treba mi pomoc s ovom scriptom:

Code:
f = open(r'C:\ff.txt', 'r')      open txt file , read
for line in f:                              #there are more lines in variable f
    x=line.split()                         # i split that lines so I could delete few of them any way its not important
    del x[:1]                         # cut it
    del x[2];del x[1];del x[1];del x[1];del x[1];del x[1]  # cut it till it left what i want
    o=str(x)                    # I put it in string so I could strip some signs since list dosent have strip command
    p=o.strip('[]\'')         # I strip few signs
    l=open(r'C:\lol.txt','w')       # I wanna save it in C:\lol.txt
    l.writelines(p)                     #save variable , but i t save one and when it save other line it delete first one
    l.close()


uglavnom u fajlu C:\ff.txt nalazi se par linija i ja sam to sasjekao i uredio kao sto pise gore u codu , i sad kad zelim to sve spremit u jednu varijablu ne moze jer se sprema jedno preko druge i brise ovu prvu , tako da nakraju samo zadnja ostane , i pokusao sam i s append u listi ali neradi , kako mogu to sve nekako spremit u jednu varijablu i onda da spremim u mapu , ako neko moze pomoc bio bih zahvalan jer mi se ovaj problem vec javlja kod par progama a nikako da skontam kako da to rijesim...
[ Au197/79 @ 26.09.2010. 16:18 ] @
A zašto ne bi radilo da pre petlje napraviš listu a u petlji je puniš linijama. Onda kad se iz petlje izađe otvoriš fajl lol i sve te linije upišeš u njega.

Problem sa tekućom implementacijom je što ti u svakom prolasku kroz petlju otvaraš fajl za upis i time brišeš njegov prethodni sadržaj. Pored onog prvog rešenja koje je verovatno najbrže imaš sporije rešenje da lol faj otvoriš pre petlje i u petlji ga puniš, a zatvoriš čim izađeš iz nje. Najsporije bi bilo da u svakom prolasku kroz petlju otvoriš fajl za upis ali u append modu tako da se prethodni sadržaj ne briše. Ovaj način je glup a pominjem ti ga samo da bih rekao da postoji i append mod: http://docs.python.org/library/functions.html#open
[ del-boy @ 26.09.2010. 16:19 ] @
Recimo:

Code:

f = open(r'C:\ff.txt', 'r')      open txt file , read
lst = [] # OVO SAM DODAO
for line in f:                              #there are more lines in variable f
    x=line.split()                         # i split that lines so I could delete few of them any way its not important
    del x[:1]                         # cut it
    del x[2];del x[1];del x[1];del x[1];del x[1];del x[1]  # cut it till it left what i want
    o=str(x)                    # I put it in string so I could strip some signs since list dosent have strip command
    p=o.strip('[]\'')         # I strip few signs
    lst.append(p) # OVO SAM DODAO
    #l=open(r'C:\lol.txt','w')       # I wanna save it in C:\lol.txt
    #l.writelines(p)                     #save variable , but i t save one and when it save other line it delete first one
    #l.close()
l = open(r'C:\lol.txt', 'w') # OVO SAM DODAO
l.writelines(lst) # OVO SAM DODAO
l.close() # OVO SAM DODAO


Jesi li to hteo?

Samo obrati pažnju da writelines metoda ne dodaje newline karakter na kraj, tako da ako hoćeš da ti svaki element bude u svom redu moraš pre dodavanja promenjive p u listu lst da dodaš newline karakter sam.

PS: Nisam probao, ali trebalo bi da radi :)
[ Pwnage @ 26.09.2010. 18:19 ] @
da to sam htjeo , ja sam bio napravo varijablu za listu unutar for naredbe pa mi zato nije radilo da ovov sam htjeo , znam za append pokusavao sam samo sto sam uvijek stavljao novu varijablu u for naredbi tako da me to zezalo...