Petr Zlamal wrote:
> Potreboval bych zapsat retezec na zacatek jiz existujiciho souboru.
Pokud si prejete posunout existujici obsah tak, aby se nic nepremazalo,
zkuste test case v priloze.
Pokud chcete zacatek souboru prepsat, otevrete soubor s priznakem 'r+'
(resp. 'w+', pokud pri otevirani soubor jeste neexistuje).
Nicmene obecne povazuji vkladani na zacatek souboru jako priznak
nedobreho navrhu. Doporucuji overit, jestli Vas do toho netlaci nejaka
skutecnost, kterou by slo odbourat.
--
\//\/\
http://macek.sandbox.cz
import os, mmap
CONTENT = [ x**10 for x in range(10) ]
BRICKS = "Tento trik umozni jednoduse vkladat retezce " \
"na zacatek souboru.".split()
FN = '/tmp/file-prepend.blabla.tmp'
# Priprava: Ciselna rada do noveho souboru
print "Writing:", CONTENT
print >> open(FN, 'w'), CONTENT
print
# -----------
def prepend(f, string):
sl = len(string)
if sl:
mm = mmap.mmap(f.fileno(), 0)
fl = mm.size()
mm.resize(fl + sl) # udelame misto
mm.move(sl, 0, fl) # posuneme obsah doprava
mm[:sl] = string # zapisene na zacatek
mm.close()
f = open(FN, 'r+')
BRICKS.reverse()
for word in BRICKS:
print "Prepending:", word
prepend(f, word + ' ')
f.close()
print
print "Result:"
print open(FN).read()
begin:vcard
fn:Vlada Macek
n:Macek;Vlada
adr:;;;Liberec;;;Czech Republic
email;internet:[EMAIL PROTECTED]
title:Software || Networking && UNIX
tel;cell:+420 608 978 164
note;quoted-printable:GPG info: key 0x1F059424, fingerprint 1494 F8DD 6379 4CD7 E7E3 1FC9 D7504=
243 1F05 9424=0D=0A=
=0D=0A=
When you find a virus in mail from me, then I intended to infect you, sin=
ce I use SW that is not distributing malware w/o my knowledge.=0D=0A=
=0D=0A=
x-mozilla-html:FALSE
url:http://macek.sandbox.cz
version:2.1
end:vcard
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python