[MEGOLDVA] python file tordeles

hali!

abban kene segitseg, hogy hogyan tudnam megoldani pythonban egy hosszu newline karaktere nelkuli string file-ba irasat ugy, hogy mondjuk 50 karakterenkent uj sort kezdjen.

Hozzászólások

Írd karakterenként a fájlba ciklussal (pl while-lal EOF-ig) és 50-esével írj hozzá egy '\n' -t.

-vagy-

Kiírás előtt másold le ciklussal, karakterenként a stringet és minden 50. karakter legyen '\n'. Ezután hagyományosan írd ki.

--
return 0;

A python stringműveletei kissé érzékenyek a változó sztringekre, például arra, ha egyesével adogatunk egy sztringhez újabb karaktereket. Képes lemásolni a teljes régit, hogy hozzácsapjon még egy újat. Kicsit luxusnak tűnik nekem a fenti megoldás, s ha nagyobb fájlokról lenne szó, akkor eléggé lassú is lehet.
Én valahogy így csinálnám:

s1 = "aljkdfhaskljfhsdjkgfsdklfjhasklgfgaslfhs"
s2 = []
i = 0;
while i<len(s1):
__s2.append( s1[i:i+10] )
__i += 10
s2 = "\n".join(s2)
print s2

if not text:
___panic
for i in xrange(len(text)//50+1):
___print text[i*50:(i+1)*50]

kosz a valaszokat, tenyleg nem jutott eszembe semmi ertelmes megoldas ra, de igy mar jo lesz :)

import re
split5 = re.compile(r".{1,5}", re.DOTALL).findall
print split5('"Give me bacon and eggs," said the other man.')
# prints ['"Give', ' me b', 'acon ', 'and e', 'ggs,"', ' said', ' the ', 'other', ' man.']

"\n".join(split5('"Give me bacon and eggs," said the other man.'))