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
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Reply via email to