Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 12.10.2020, 10:12   #1
Zlatko P.
Novi član
 
Član od: 17.4.2019.
Poruke: 21
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Određen forumom Python, fajlovi

Molim nekoga za pomoć. Kako da ova ponavljanja izbegnem i napišem sve u jednoj naredbi/liniji:

d=open( "papers\\test_2.txt", "w+" )
d.write (str(d_32))
d.write ('\t')
d.write (str(d_34))
d.write ('\t')
d.write (str(d_42))
d.write ('\t')
d.write (str(d_44))
d.write ('\t')
d.write (str(d_52))
d.write ('\t')
d.write (str(d_53))
d.write ('\t')
d.write (str(d_62))
d.write ('\t')
d.write (str(d_71))


Hvala.
Zlatko P. je offline   Odgovor sa citatom ove poruke
Stara 12.10.2020, 14:42   #2
Neutrino
Deo inventara foruma
 
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
Određen forumom Re: Python, fajlovi

Ako su uslovi zadatka takvi da strogo traže ispis već postojećih promenljivih onda prost .format() može da odradi posao.

Kod:
d=open( "papers\\test_2.txt", "w+" )
d.write('{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t'.format(d_32, d_34, d_42, d_44, d_52, d_53, d_62, d_71));
Prednost ovog pristupa je što format() radi automatsku konverziju u stringove ukoliko u placeholderu ({}) nije eksplicitno naglašen tip podataka pa onda nije potreban str().

Naravno, postoji i malo elegenantija alternativa kada su svi podaci unapred poznati a to je join().

Kod:
data = [ 
    str(d_32),
    str(d_34),
    str(d_42),
    str(d_44),
    str(d_52),
    str(d_53),
    str(d_62),
    str(d_71)
]

d=open( "papers\\test_2.txt", "w+" )
d.write('\t'.join(data));
Prednost ovog načina je što join() automatski dodaje separator (ovde \t) gde je potrebno i što se spajanje očigledno vrši u jednoj liniji.

Nedostatak je što podaci moraju da budu smešteni u "iterabilnom" tipu podataka, kao što je gore navedena data lista, ali ako se podaci od samog početka tako smeštaju onda problem očigledno ne postoji.

Ovaj drugi listing može dodatno da se optimizuje korišćenjem map() metode tako da data lista sadrži samo podatke, bez potrebe da se svaki eksplicitno konvertuje u string sa str().

Kod:
data = [ d_32, d_34, d_42, d_44, d_52, d_53, d_62, d_71 ]
d=open( "papers\\test_2.txt", "w+" )
d.write('\t'.join(map(str, data)));

Poslednja ispravka: Neutrino (12.10.2020 u 14:50)
Neutrino je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Neutrino na korisnoj poruci:
voodoo_ (12.10.2020)
Stara 12.10.2020, 17:13   #3
Zlatko P.
Novi član
 
Član od: 17.4.2019.
Poruke: 21
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Python, fajlovi

Hvala na odgovoru!
Zlatko P. je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
seckaju mp4 video fajlovi 1080p x265 (akcenat na x265) akobasmora Video/TV softver 13 26.6.2017 21:06
kako dodeliti domen i kako povezati python app sa apache? predic Programiranje 9 3.9.2015 16:52
Python 2, ili 3 Krilce Programiranje 5 26.8.2013 16:50
INFO fajlovi Suad Novic Grafički softver i radovi 4 18.2.2010 18:27
Sta znace fajlovi sa NFO ekstenzijom i cemu sluze? Ilic Marko Aplikativni softver 7 18.12.2005 0:54


Sva vremena su po Griniču +2 h. Sada je 15:39.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com