[python] pomoc v pythone

Petr Přikryl prikryl na atlas.cz
Pondělí Červenec 26 07:32:48 CEST 2010


>Musíš si to odřádkovat :-)

Pro doplnění, příkaz print si přidává konec řádku sám a dá se
přesměrovat i do souboru. Přesto bych ale dal přednost tomu
subor.write(...)

>Před "subor.close()" napiš "subor.write('rn')" nebo, což je
>korektnější, "subor.write(os.linesep)", nezapomeň někde nad tím uvést
>"import os".
>
>os.linesep obsahuje oddělovač řádků - na Windows tam bude "rn", na
>Unix-like systémech (tj. skoro všude jinde) "n". Mimochodem, existuje
>ještě jedna možnost - otevřít souboru v režimu  "universal newline
>support" a jako oddělovač řádku psát jen "n", ono by se to pak mělo
>na Windows na "rn" převést samo. (To, že jedeš na Windows, odvozuji
>ze sleepu na konci.)

Toto není přesné. Pokud je soubor otevřen pro zápis v textovém
režimu (což platí vždy, když se to mode neuvede 'b'), pak se 'n'
automaticky převádí na posloupnost pro konec řádku používaný
v daném operačním systému. Hraní si s os.linesep má smysl
jen v případě, kdy si soubor záměrně otevřeme pro ČTENÍ 
v BINÁRNÍM režimu.

Universal Newline Support se používá jen při otvírání textových
souborů pro čtení (režim 'rU). Pak je jedno, v jakém OS byl
soubor vytvořen.

>> subor=file(nazov,'a')

Pro otvírání souboru používej open(). Volání jakoby konstruktoru
objektu typu file() již například v Python 3 není možné.  Takže pokud
byly file() a open() v Pythonu 2 synonyma (vždy se ale doporučovalo
používat open()), v Pythnonu už file() způsobí chybu.

Měj se fajn,
   Petr


Další informace o konferenci Python