[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