branje datoteke brez novih vrstic v Pythonu
V Pythonu je klicanje
temp = open(filename,'r').readlines()
dobimo seznam, v katerem je vsak element vrstica v datoteki. Malce neumno, a vendar: readlines()
vsakemu elementu zapiše tudi znak nove vrstice, česar ne želim, da bi se zgodilo.
Kako se lahko temu izognem?
316
3
Celotno datoteko lahko preberete in razdelite vrstice z uporabo
str.splitlines
:Lahko pa tudi ročno odstranite nove vrstice:
Note: ta zadnja rešitev deluje le, če se datoteka konča z novo vrstico, sicer bo zadnja vrstica izgubila znak.
Ta predpostavka velja v večini primerov (zlasti za datoteke, ustvarjene z urejevalniki besedil, ki pogosto zelo dodajo končno novo vrstico).
Če se želite temu izogniti, lahko dodate novo vrstico na koncu datoteke:
Enostavnejša možnost je, da namesto tega odstranite novo vrstico:
Ali celo, čeprav je precej neberljivo:
Pri tem se izkorišča dejstvo, da povratna vrednost funkcije
or
ni boolean, temveč predmet, ki je bil ovrednoten kot true ali false.Metoda
readlines
je pravzaprav enakovredna:Ker
readline()
ohrani novo vrstico, jo ohrani tudireadlines()
.Note: zaradi simetrije z
readlines()
metodawritelines()
*ne doda končnih novih vrstic, zatof2.writelines(f.readlines())
ustvari natančno kopijof
vf2
.