[python] Plánovač úloh a Python

Petr Messner petr.messner na gmail.com
Pondělí Červenec 23 19:27:24 CEST 2018


V Pythonu je několik způsobů, jak číst soubor (nebo zapsat, to je podobné)
- asi nejjednodušší je:

from pathlib import Path
obsah_souboru = Path(r'cesta\soubor.txt').read_text()

Lze si soubor otevřít a pracovat s ním nějak složitěji - kombinovat read,
write, flush, seek, zamykat...:

f = open(r'cesta\soubor.txt')
try:
    obsah_souboru = f.read()
finally:
    f.close()

Je výhodnější použít with konstrukci, která za tebe zavolá to close:

with open(r'cesta\soubor.txt') as f:
    obsah_souboru = f.read()

To Path.read_text ve skutečnosti dělá přesně tohle - viz zdroják:
https://github.com/python/cpython/blob/147d95511f59cfdd2d522f9d736f2335457bae20/Lib/pathlib.py#L1174

A nebo můžeš jít low-level a přímo volat syscally operačního systému - ale
pak si musíš hlídat chybové stavy, řešit si sám bufferování a tak, asi je
vidět, proč se to takhle obvykle nedělá:

import os
fd = os.open(r'cesta\soubor.txt', os. O_RDONLY)
try:
    obsah_souboru = []
    while True:
        data = os.read(fd, 65536)
        if data == b'':
            break
        obsah_souboru.append(data)
    obsah_souboru = b''.join(obsah_souboru).decode()
finally:
    os.close(fd)

Raději spíš napiš, čeho chceš dosáhnout a kam už ses dostal.

Zkus si o tom něco přečíst:

- https://naucse.python.cz/course/pyladies/beginners/files/
- https://docs.python.org/3/library/pathlib.html
- https://python101.pythonlibrary.org/chapter8_file_io.html
- https://knihy.nic.cz/files/edice/python_3.pdf

Petr Messner

po 23. 7. 2018 v 16:55 odesílatel <radekmesner na gmail.com> napsal:

> Dává to smysl.
>
> Jen nechápu poslední odstavec. Nevím, kam napsat
> open('C:/data/soubor.txt').
> Nemělo by tam být spíš něco jako write('a cesta kam se uloží, aby to
> nebylo system32')?
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20180723/34ed8427/attachment.html>


Další informace o konferenci Python