Re: [python] zapis na zacatek souboru

2008-09-15 Tema obsahu Petr Zlamal
Jako puvodce dotazu bych byl taky rad kdyby se dohadovani udelalo 
pritrz. Bylo mi porazeno a dohadovani ve zbylich  dnech jiz bylo 
zbytecne. Jsme preci rozumni lide

Vepro

Sakra lidi, co tady furt resite?
Ja myslel, ze je to tady konfera o radach a ne o dohadovani :-(

Takze to shrneme, mas 2 moznosti:
1. nacist si obsah souboru do pameti, metodou write zapsat do souboru 
nova data+data z pameti
2. prejmenovat soubor, a zapsat do souboru nova data + data z 
prejmenovaneho souboru

To jsou rady k polozenemu dotazu, osobne se priklanim k prvni variante.

Pokud je ovsem dat hodne, doporucuji pouzit nejakou  DB, urcite 
postaci SQLite.
Pokud se jedna o citliva, pripadne dulezita data opet doporucuji 
pouzit DB, pak cloveka nezaskoci ani vypadek proudu.
Pokud ale nepracujes s nijak dulezitymi daty, nepotrebujes zalohovani, 
atd, atd. doporucuji pouzit 1. zminovanou variantu.


HOWK

Tomas



Dne 10.9.2008 12:18, Petr Zlamal napsal(a):

Pratele,
Potreboval bych zapsat retezec na zacatek jiz existujiciho souboru. 
Zkousel jsem neco jako:


 f=open(file.txt,a)
 f.write(slovo)
 f.close()
 f=open(file.txt,a)
 f.tell()
5L
 f.seek(0)
 f.tell()
0L
 f.write(slovo2)
 f.close()

Ale furt pripisuje na konec, ikdyz dle me by nemel. Tak jsem to 
vyresil cyklem, ktery vytvori novy soubor, ulozi retezec na zacatek a 
pote prekopiruje obsah puvodniho souboru. Zda se mi to jako 
neefektivni reseni, zna a poradi nekdo neco  elegatnejsiho?

Vepro

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python



___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-15 Tema obsahu Tomas Brabenec

Sakra lidi, co tady furt resite?
Ja myslel, ze je to tady konfera o radach a ne o dohadovani :-(

Takze to shrneme, mas 2 moznosti:
1. nacist si obsah souboru do pameti, metodou write zapsat do souboru 
nova data+data z pameti
2. prejmenovat soubor, a zapsat do souboru nova data + data z 
prejmenovaneho souboru

To jsou rady k polozenemu dotazu, osobne se priklanim k prvni variante.

Pokud je ovsem dat hodne, doporucuji pouzit nejakou  DB, urcite postaci 
SQLite.
Pokud se jedna o citliva, pripadne dulezita data opet doporucuji pouzit 
DB, pak cloveka nezaskoci ani vypadek proudu.
Pokud ale nepracujes s nijak dulezitymi daty, nepotrebujes zalohovani, 
atd, atd. doporucuji pouzit 1. zminovanou variantu.


HOWK

Tomas



Dne 10.9.2008 12:18, Petr Zlamal napsal(a):

Pratele,
Potreboval bych zapsat retezec na zacatek jiz existujiciho souboru. 
Zkousel jsem neco jako:


 f=open(file.txt,a)
 f.write(slovo)
 f.close()
 f=open(file.txt,a)
 f.tell()
5L
 f.seek(0)
 f.tell()
0L
 f.write(slovo2)
 f.close()

Ale furt pripisuje na konec, ikdyz dle me by nemel. Tak jsem to 
vyresil cyklem, ktery vytvori novy soubor, ulozi retezec na zacatek a 
pote prekopiruje obsah puvodniho souboru. Zda se mi to jako 
neefektivni reseni, zna a poradi nekdo neco  elegatnejsiho?

Vepro

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-13 Tema obsahu Calis . martin
ano, a dělat si proto bordel na disku :P navíc mam notebook takže problém s 
elektřinou odpadá :) a pokud jde o ztrátu dat tak bych teda radši dělal 
zálohy...

  Původní zpráva 
 Od: azurIt [EMAIL PROTECTED]
 Předmět: Re: [python] zapis na zacatek souboru
 Datum: 12.9.2008 20:58:29
 
 v kazdom pripade treba pouzit 2 subory: co keby v tvojom pripade napr. vyplo
 elektrinu ihned po tomto riadku:
 
 file = open(soubor,w)
 
 mal by si po datach :)
 
 
 -Pôvodná správa-
 Od: [mailto:[EMAIL PROTECTED]
 Komu: Konference PyCZ python@py.cz
 Predmet: Re: [python] zapis na zacatek souboru
 
 
 a co treba takto:
 
 file = open(soubor,r)
 data = file.read()
 file.close()
 
 data = tvojeData + data
 
 file = open(soubor,w)
 data = file.write(data)
 file.close()
 ###konec
 
 Pokud vím tak tvoje metoda by byla jenom naprosto zbytečná protože bys to 
 musel
 udělat s modem a místo w ;) asi takhle:
 
 newfile = open( 'newfile', 'a')
 oldfile = open( 'oldfile', 'r')
 newfile.write( oldfile.read())
 newfile.close()
 oldfile.close()
 
 
 ###
 
 ale stejně by si musel použít dva místo jednoho souboru :(
 
   Původní zpráva 
  Od: Petr Nesladek [EMAIL PROTECTED]
  Předmět: Re: [python] zapis na zacatek souboru
  Datum: 12.9.2008 08:27:22
  
  Asi nejjednodussi - nazorne takto :
 
  newfile = open( 'newfie', 'w')
  newfile.write( Neco na zacatek souboru.\n)
  oldfile = open( 'oldfile', 'r')
  newfile.write( oldfile.read())
  newfile.close()
  oldfile.close()
 
  - lepe to neznam - ale rad se priucim
 
  Petr
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python
 
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python
 
 
 
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-12 Tema obsahu Calis . martin
a co treba takto: 

file = open(soubor,r)
data = file.read()
file.close()

data = tvojeData + data

file = open(soubor,w)
data = file.write(data)
file.close()
###konec

Pokud vím tak tvoje metoda by byla jenom naprosto zbytečná protože bys to musel 
udělat s modem a místo w ;) asi takhle:

newfile = open( 'newfile', 'a')
oldfile = open( 'oldfile', 'r')
newfile.write( oldfile.read())
newfile.close()
oldfile.close()


###

ale stejně by si musel použít dva místo jednoho souboru :(

  Původní zpráva 
 Od: Petr Nesladek [EMAIL PROTECTED]
 Předmět: Re: [python] zapis na zacatek souboru
 Datum: 12.9.2008 08:27:22
 
 Asi nejjednodussi - nazorne takto :
 
 newfile = open( 'newfie', 'w')
 newfile.write( Neco na zacatek souboru.\n)
 oldfile = open( 'oldfile', 'r')
 newfile.write( oldfile.read())
 newfile.close()
 oldfile.close() 
 
 - lepe to neznam - ale rad se priucim
 
 Petr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-12 Tema obsahu azurIt
v kazdom pripade treba pouzit 2 subory: co keby v tvojom pripade napr. vyplo 
elektrinu ihned po tomto riadku:

file = open(soubor,w)

mal by si po datach :)


-Pôvodná správa-
Od: [mailto:[EMAIL PROTECTED]
Komu: Konference PyCZ python@py.cz
Predmet: Re: [python] zapis na zacatek souboru


a co treba takto:

file = open(soubor,r)
data = file.read()
file.close()

data = tvojeData + data

file = open(soubor,w)
data = file.write(data)
file.close()
###konec

Pokud vím tak tvoje metoda by byla jenom naprosto zbytečná protože bys to 
musel udělat s modem a místo w ;) asi takhle:

newfile = open( 'newfile', 'a')
oldfile = open( 'oldfile', 'r')
newfile.write( oldfile.read())
newfile.close()
oldfile.close()


###

ale stejně by si musel použít dva místo jednoho souboru :(

  Původní zpráva 
 Od: Petr Nesladek [EMAIL PROTECTED]
 Předmět: Re: [python] zapis na zacatek souboru
 Datum: 12.9.2008 08:27:22
 
 Asi nejjednodussi - nazorne takto :

 newfile = open( 'newfie', 'w')
 newfile.write( Neco na zacatek souboru.\n)
 oldfile = open( 'oldfile', 'r')
 newfile.write( oldfile.read())
 newfile.close()
 oldfile.close()

 - lepe to neznam - ale rad se priucim

 Petr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-12 Tema obsahu Vlada Macek
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

Re: [python] zapis na zacatek souboru

2008-09-11 Tema obsahu Pavel Kosina

Ondrej Beran napsal(a):

2008/9/10 Jan Kundrát [EMAIL PROTECTED]:

  

Pokud dokazes na dnesnich beznych systemech opravdu *vkladat* bajty pred



Tak se podivej, na co jsem reagoval.

Diskutovat o tom, zda lze vkladat do souboru, aniz by se odsunul jeho konec
at uz jakoukoli technikou, bych ocekaval na foru PHP strikacu,
  


Včera jsem byl u šéfové, a když jsem jí říkal, že mám moc práce, a že 
bych měl dostat přidáno (peníze), tak pořád říkala dokola: Pane Kosina, 
heleďte, všechno je to o komunikaci. Tak ted už vím, o čem to mluvila :-D


--
geon
Pavel Kosina

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-11 Tema obsahu MaReK Olšavský
Ondrej Beran napsal(a):
 bych ocekaval na foru PHP strikacu,
 ale ne programatoru...
^^^Fobie z PHP?? Nevim, ale jazyk, jako jazyk. PHP nedela spatne
programatory, jakoby programatori se uci PHP, protoze v nem lze rychle
psat a rychle zacit generovat alespon nejake prijmy, vsak jen malokdo
umi v PHP na takove urovni, aby se tim zivil i v produktivnim veku.

-- MaReK
- --

MaReK Penguin Olšavský
PHP Voodoo
private mail: [EMAIL PROTECTED]
private web: http://blog.devlabs.biz
Jabber: [EMAIL PROTECTED]; MSN: [EMAIL PROTECTED]; Skype: Penguin_007
tel.: +420-603-519-650; +420-775-154-689 (775-1-LINUX)

Na stránce bylo napsáno: Optimalizováno pro Explorer 5, nebo lepší.
  Tak jsem přešel na Mozilla Firefox  -- http://firefox.czilla.cz/
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-11 Tema obsahu Ondrej Beran
2008/9/11 MaReK Olšavský [EMAIL PROTECTED]:

 bych ocekaval na foru PHP strikacu,
 ale ne programatoru...
 ^^^Fobie z PHP?? Nevim, ale jazyk, jako jazyk.

A opet: kde ctes neco o PHP jazyku :-O


 jakoby programatori se uci PHP, protoze v nem lze rychle

Ty tomu rikas jakoby programator, my tem pologramotnym copypaste
individuim rikame strikaci...
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-11 Tema obsahu Petr Messner
Pokud se soubor otevře v režimu append, pak zápis je prováděn _vždy_
na konec souboru.

POSIXový (a snad ani žádný jiný) operační systém neumí vkládat jinam
než na konec souboru. Pokud je ukazatel jinde než na konci souboru,
zápisem se přepisuje obsah souboru. Podle toho musíš postupovat - buď
soubor načíst do paměti, nebo pokud je velký, buď postupně přesouvat
data od konce dopředu nebo založit jiný soubor a data zkopírovat.
(Raději ještě napíšu, že soubor lze samozřejmě otevřít pro zápis a pro
čtení i zápis bez toho, aby se jeho obsah předem vymazal.)

P. M.

Dne 10. září 2008 12:18 Petr Zlamal [EMAIL PROTECTED] napsal(a):
 Pratele,
 Potreboval bych zapsat retezec na zacatek jiz existujiciho souboru. Zkousel
 jsem neco jako:

 f=open(file.txt,a)
...
 Ale furt pripisuje na konec, ikdyz dle me by nemel. Tak jsem to vyresil
...
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] zapis na zacatek souboru

2008-09-10 Tema obsahu Petr Zlamal

Pratele,
Potreboval bych zapsat retezec na zacatek jiz existujiciho souboru. 
Zkousel jsem neco jako:


 f=open(file.txt,a)
 f.write(slovo)
 f.close()
 f=open(file.txt,a)
 f.tell()
5L
 f.seek(0)
 f.tell()
0L
 f.write(slovo2)
 f.close()

Ale furt pripisuje na konec, ikdyz dle me by nemel. Tak jsem to vyresil 
cyklem, ktery vytvori novy soubor, ulozi retezec na zacatek a pote 
prekopiruje obsah puvodniho souboru. Zda se mi to jako neefektivni 
reseni, zna a poradi nekdo neco  elegatnejsiho?

Vepro

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-10 Tema obsahu Ondrej Beran
Dne 10. září 2008 12:18 Petr Zlamal [EMAIL PROTECTED] napsal(a):

 f=open(file.txt,a)

 Ale furt pripisuje na konec, ikdyz dle me by nemel.

Nejspis ten soubor nesmis otevirat v rezimu append
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-10 Tema obsahu azurIt
Nejspis ten soubor nesmis otevirat v rezimu append

Ked o tom nemas paru tak nerad :) Pokial subor otvoris v rezime 'write', tak sa 
automatiky vyprazdni.

Inak zrejme to budes musiet naozaj robit tak, ako to robis. Pokial by ti ten 
seek aj fungoval, tak by sposobil to, ze by ta presunul na zaciatok suboru a 
data tam nahradzoval (tzn. prepisal by tie, co tam mas ulozene). Pokial chces 
data na zaciatok proste vlozit, tak mi nie je znama ina metoda ako vytvorit 
subor novy (avsak netvrdim, ze to inak nejde).


___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-10 Tema obsahu RMiklos
Uvazujme takyto subor:
--- pokus.txt ---
prvy riadok
druhy riadok
treti riadok
-

Riadky subor nacitas do zoznamu, doplnis na zaciatok zoznamu riadok a 
potom do suboru zapises nove riad´ky, takto:

---
f=open(pokus.txt,rw)
# Nacitat riadky do listu
lines=f.readlines()
print lines
f.close()

# vlozit na zaciatok
lines =[Nieco na zaciatok\n]+lines
print lines

# zapis do suboru
f=open(pokus.txt,w)
f.writelines(lines)
f.close()
--


Vysledok je
--- pokus.txt ---
Nieco na zaciatok
prvy riadok
druhy riadok
treti riadok
-








[python] zapis na zacatek souboru

Petr Zlamal 
to:
Konference PyCZ
10.09.2008 14:12


Sent by:
[EMAIL PROTECTED]
Please respond to Konference PyCZ






Pratele,
Potreboval bych zapsat retezec na zacatek jiz existujiciho souboru. 
Zkousel jsem neco jako:

  f=open(file.txt,a)
  f.write(slovo)
  f.close()
  f=open(file.txt,a)
  f.tell()
5L
  f.seek(0)
  f.tell()
0L
  f.write(slovo2)
  f.close()

Ale furt pripisuje na konec, ikdyz dle me by nemel. Tak jsem to vyresil 
cyklem, ktery vytvori novy soubor, ulozi retezec na zacatek a pote 
prekopiruje obsah puvodniho souboru. Zda se mi to jako neefektivni 
reseni, zna a poradi nekdo neco  elegatnejsiho?
Vepro

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] zapis na zacatek souboru

2008-09-10 Tema obsahu David Michal
Pripisuje ti to na konec protoze soubor otviras v rezimu append.

Asi bych proste obsah souboru ulozil do pameti, tam udelal zmeny a pak
poslal zpatky do souboru.

Jen z hlavy:
r = list(retezez na zacatek souboru\n)
f = file(file.txt,r)
lines = f.readlines()
f.close()
lines = r + lines
f = file(file.txt,w)
f.writelines(lines)


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
 Petr Zlamal
 Sent: Wednesday, September 10, 2008 11:19 AM
 To: Konference PyCZ
 Subject: [python] zapis na zacatek souboru
 
 Pratele,
 Potreboval bych zapsat retezec na zacatek jiz existujiciho souboru.
 Zkousel jsem neco jako:
 
   f=open(file.txt,a)
   f.write(slovo)
   f.close()
   f=open(file.txt,a)
   f.tell()
 5L
   f.seek(0)
   f.tell()
 0L
   f.write(slovo2)
   f.close()
 
 Ale furt pripisuje na konec, ikdyz dle me by nemel. Tak jsem to
vyresil
 cyklem, ktery vytvori novy soubor, ulozi retezec na zacatek a pote
 prekopiruje obsah puvodniho souboru. Zda se mi to jako neefektivni
 reseni, zna a poradi nekdo neco  elegatnejsiho?
 Vepro

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-10 Tema obsahu Ondrej Beran
2008/9/10 azurIt [EMAIL PROTECTED]:

Nejspis ten soubor nesmis otevirat v rezimu append

 Ked o tom nemas paru tak nerad :) Pokial subor otvoris v rezime 'write', tak 
 sa automatiky vyprazdni.

Je dobre, kdyz tu radi odbornici, kteri nevedi, ze se da soubor
otevrit v read/write rezimu :-)
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] zapis na zacatek souboru

2008-09-10 Tema obsahu Jan Kundrát

Ondrej Beran wrote:

2008/9/10 azurIt [EMAIL PROTECTED]:


Nejspis ten soubor nesmis otevirat v rezimu append

Ked o tom nemas paru tak nerad :) Pokial subor otvoris v rezime 'write', tak sa 
automatiky vyprazdni.


Je dobre, kdyz tu radi odbornici, kteri nevedi, ze se da soubor
otevrit v read/write rezimu :-)


Pokud dokazes na dnesnich beznych systemech opravdu *vkladat* bajty pred 
prvni pozici v souboru, tedy bez nejakeho nacteni souboru do pameti a 
zapisu zpatky na disk, mas u me pivo.


Hezke hloubani,
-jkt

--
cd /local/pub  more beer  /dev/mouth



signature.asc
Description: OpenPGP digital signature
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] zapis na zacatek souboru

2008-09-10 Tema obsahu Ondrej Beran
2008/9/10 Jan Kundrát [EMAIL PROTECTED]:

 Pokud dokazes na dnesnich beznych systemech opravdu *vkladat* bajty pred

Tak se podivej, na co jsem reagoval.

Diskutovat o tom, zda lze vkladat do souboru, aniz by se odsunul jeho konec
at uz jakoukoli technikou, bych ocekaval na foru PHP strikacu,
ale ne programatoru...
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python