Edit detail for path revision 2 of 1

2
Editor: geon
Time: 2008/09/21 18:03:32 GMT+2
Note:

changed:
-
Modul path
==========

Modul stáhnete na http://www.jorendorff.com/articles/python/path/ nebo http://pypi.python.org/pypi/path.py, rozbalíte a nainstalujete standardně pomocí ``python setup.py install``. 

Jak začít
---------

Začněte třeba takto::

  from path import path

  # pak vytvoříte instance path voláním
  prom = path('/usr/local/bin') # nebo
  prom = path('C:\\Program Files')

Popis
------

Modul činí daleko příjemnější práci se soubory a složkami než je práce se několika samostatnými moduly z distribuce. Zahrnuje je totiž v sobě v jedném třídě:

* Funkce z **os.path** jsou metodami ``path``. Takže například místo ``os.path.abspath(os.path.normpath(f))``, píšete ``f.normpath().abspath()``. (Poznámka: ``os.path.split(f)`` se stal ``f.splitpath()`` a ``os.path.join(a, b)`` se stal ``a.joinpath(b)``, aby se zabránilo konfliktům metod řetězců ``split()`` a ``join()``.)

* Mnoho funkcí z modulu **os** je také metoda ``path``. Například ``os.makedirs(d)`` se stal  ``d.makedirs()``.

* Metody ``path.files()`` a ``path.dirs()`` jsou náhradou pythonovského modulu **glob**. Například ``mydir.files('*.py')`` vrací seznam pythonovských souborů v adresáři, definovaném v ``mydir``. (pokud potřebujete skutečně metodu ``glob()``, je tam také.)

* Funkce z modulu **shutil** jsou také metodami ``path``. Obzvláště metody  ``copy()``, ``copyfile()``, ``copytree()`` a ``rmtree()`` jsou dosti užitečné.

Další fíčurky
--------------

* Metoda  ``path.walk()`` vrací iterátor, který prochází rekurzivně celý adresářový strom. ``path.walkdirs()`` a ``path.walkfiles()`` fungují stejně, až na to, že prochází buď jen adresáře nebo soubory.

* ``path.lines()`` vrací řádky souboru. ``path.bytes()`` vrací binární obsah souboru jako jeden dlouhý řetězec. Existují také opačné metody ``path.write_lines()``, ``path.write_bytes()``, ``path.write_text()`` pro přepis nebo přidávání k souborům.

* Metoda ``path.touch()`` funguje jako Unixový příkaz ``touch``. Aktualizuje  čas souboru; pokud neexistuje, bude vytvořen nový. 

* Dvě metody na práci s relativními cestami: metoda ``relpath()`` převádí objekt ``path`` na relativní cestu, přičemž jako základ bere aktuální pracovní adresář. Je to tak trochu opačná funkce ``abspath()``. Metoda ``p1.relpathto(p2)`` vrací relativní cestu k p2 vzhledem k p1. Například na windowsech ``path('C:\\Python22').relpathto('C:\\Python22\\Lib\\path.py')`` vrací ``path('Lib\\path.py'``).

Další najdete na `webu autora <http://www.jorendorff.com/articles/python/path/>`_

Příklady
--------

přidejte ...

Nápověda
--------
Přímá nápověda, dokumentace k jednotlivým funkcím i jejich plný výčet neexistuje, musíte si poradit sami: NapovedaKModulum

Modul path

Modul stáhnete na http://www.jorendorff.com/articles/python/path/ nebo http://pypi.python.org/pypi/path.py, rozbalíte a nainstalujete standardně pomocí python setup.py install.

Jak začít

Začněte třeba takto:

from path import path

# pak vytvoříte instance path voláním
prom = path('/usr/local/bin') # nebo
prom = path('C:\\Program Files')

Popis

Modul činí daleko příjemnější práci se soubory a složkami než je práce se několika samostatnými moduly z distribuce. Zahrnuje je totiž v sobě v jedném třídě:

  • Funkce z os.path jsou metodami path. Takže například místo os.path.abspath(os.path.normpath(f)), píšete f.normpath().abspath(). (Poznámka: os.path.split(f) se stal f.splitpath() a os.path.join(a, b) se stal a.joinpath(b), aby se zabránilo konfliktům metod řetězců split() a join().)
  • Mnoho funkcí z modulu os je také metoda path. Například os.makedirs(d) se stal d.makedirs().
  • Metody path.files() a path.dirs() jsou náhradou pythonovského modulu glob. Například mydir.files('*.py') vrací seznam pythonovských souborů v adresáři, definovaném v mydir. (pokud potřebujete skutečně metodu glob(), je tam také.)
  • Funkce z modulu shutil jsou také metodami path. Obzvláště metody copy(), copyfile(), copytree() a rmtree() jsou dosti užitečné.

Další fíčurky

  • Metoda path.walk() vrací iterátor, který prochází rekurzivně celý adresářový strom. path.walkdirs() a path.walkfiles() fungují stejně, až na to, že prochází buď jen adresáře nebo soubory.
  • path.lines() vrací řádky souboru. path.bytes() vrací binární obsah souboru jako jeden dlouhý řetězec. Existují také opačné metody path.write_lines(), path.write_bytes(), path.write_text() pro přepis nebo přidávání k souborům.
  • Metoda path.touch() funguje jako Unixový příkaz touch. Aktualizuje čas souboru; pokud neexistuje, bude vytvořen nový.
  • Dvě metody na práci s relativními cestami: metoda relpath() převádí objekt path na relativní cestu, přičemž jako základ bere aktuální pracovní adresář. Je to tak trochu opačná funkce abspath(). Metoda p1.relpathto(p2) vrací relativní cestu k p2 vzhledem k p1. Například na windowsech path('C:\\Python22').relpathto('C:\\Python22\\Lib\\path.py') vrací path('Lib\\path.py').

Další najdete na webu autora

Příklady

přidejte ...

Nápověda

Přímá nápověda, dokumentace k jednotlivým funkcím i jejich plný výčet neexistuje, musíte si poradit sami: NapovedaKModulum