Re: [python] Plánovač úloh a Python

2018-07-23 Tema obsahu Petr Messner
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  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@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Plánovač úloh a Python

2018-07-23 Tema obsahu Jirka Vejrazka
Jasne, tohle byl priklad.

Obecne kdekoli mas jako argument "file" (viz
https://docs.python.org/3/library/functions.html#open ), muzes tam poslat
"path-like object" (
https://docs.python.org/3/glossary.html#term-path-like-object) - tzn. treba
"jmenosouboru.txt" nebo "Z:/muj_NAS/dokumenty/jmenosouboru.txt". Proste
jmeno souboru muze mit pred sebou uvedenu cestu (kterou znas z TC). Jen je
treba dat pozor na to, ze v Pythonu musis uvadet i na Windows dopredna
lomitka (nebo pouzit r'raw string', jak uz nekdo dnes psal).

Plati pro cteni i pro zapis.

.write(neco) je metoda na otevrenem souboru (file-like objekt). Tj. nejdriv
musis soubor otevrit pres "open" ( tady potrebujes to jmeno a mozna cestu)
, a teprve potom do nej muzes neco psat (a uz jen resis co zapisujes, ne
kam).

2018-07-23 16:50 GMT+02:00 :

> 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@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Plánovač úloh a Python

2018-07-23 Tema obsahu radekmesner
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@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Plánovač úloh a Python

2018-07-23 Tema obsahu Jirka Vejrazka
Ve vsech operacnich systemech existuje koncept "aktualniho adresare".
Znaceno nejak jako "C:\Users\Radek>" nebo "/home/radek", v zavislosti na
systemu. Kdyz spustis prikazovy radek z TC, tak mas ten aktualni adresar
nastaveny tam, kam momentalne "ukazuje" okno v TC. Aktualni adresar se meni
prikazem "cd". Tj. pokud jsi v "C:\Users\Radek" a udelas "cd skripty", tak
se aktualni adresar zmeni na "C:\Users\Radek\skripty" (za predpokladu, ze
dany adresar "skripty" existuje.

Kdyz neco spustis pres planovac, tak je aktualni adresar pro potreby toho
skriptu nastaven jinak - vetsinou do nejakeho systemoveho adresare, treba
C:\Windows\system32. Z mnoha rozumnych duvodu by se tam nemelo nic
zapisovat (a system to beznemu uzivateli ani nedovoli).

No a pokud v Pythonu (nebo v uplne libovolnem jazyce) ctes nebo ukladas
soubor bez uvedeni cesty (tj. neco jako  open('soubor.txt') ), tak ho
*vzdy* oterviras z "aktualniho adresare". Rozumnejsi je uvadet soubor s
cestou, treba  open('C:/data/soubor.txt')

Dava to smysl?

   Jirka

2018-07-23 16:14 GMT+02:00 :

> Děkuji mnohokrát za všechny odpovědi a vaše reakce. Jsem z toho zmatený,
> asi se budu dále ptát, jako největší blbec + moje malá znalost anglického
> jazyka.
>
> starenka: os.expandvars mi nějak nefunguje, nejsem z toho moudrý
>
> Petr Messner: Otevírám přes Total Commander, najedu na soubor a dám enter.
> Pro úpravy otevírám v programu IDLE. Nevím, jak to myslíte, jak jinak
> otvírat.
>
> Petr Blahos: Nějak jsem nepochopil, jak vytvořím cmd soubor. Při spuštění
> skriptu přes zmíněný TC se cmd/příkazová řádka otevře, kde skript běží a
> stahuje data.
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Plánovač úloh a Python

2018-07-23 Tema obsahu radekmesner
Děkuji mnohokrát za všechny odpovědi a vaše reakce. Jsem z toho zmatený, asi se 
budu dále ptát, jako největší blbec + moje malá znalost anglického jazyka.

starenka: os.expandvars mi nějak nefunguje, nejsem z toho moudrý

Petr Messner: Otevírám přes Total Commander, najedu na soubor a dám enter. Pro 
úpravy otevírám v programu IDLE. Nevím, jak to myslíte, jak jinak otvírat.

Petr Blahos: Nějak jsem nepochopil, jak vytvořím cmd soubor. Při spuštění 
skriptu přes zmíněný TC se cmd/příkazová řádka otevře, kde skript běží a 
stahuje data.

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

Visit: http://www.py.cz


Re: [python] Plánovač úloh a Python

2018-07-23 Tema obsahu Petr Blahos
 Ahoj,

na ten python script (nebo jakejkoliv jinej) si udělám cmd soubor, a ten
spouštím přes
task scheduler. Pak platí všechno, co psali ostatní, to znamená, že v tom
scriptu můžeš
třeba nastavit cestu a pak spustit ten python kód

C:
cd \cesta\na\ktere\to\chci\spoustet
python c:\cestakescriptu\script.py

Co je to ta událost?

Jinak, ukládat věci do složky pythonu není rozumné. Udělej si nějakou
vlastní (asi tak něco jako
C:\Users\mojejmeno\scripts
nebo
C:\Users\mojejmeno\py
) a svoje věci si dávej tam. Pak jednoduše poznáš, co je Tvoje.

Petr
--
http://www.blahos.com/ 
http://traceability.cz/


On Mon, Jul 23, 2018 at 9:01 AM  wrote:

> Dobrý den,
> předem  bych se chtěl omluvit za moji totální neznalost jazyka pythonu,
> ale každý někdy začínal :)
>
> Mám funkční skript, který potřebuji spouštět v určitý čas. Proto jsem si
> vytvořil ve Win 7 událost. Jenže po spuštění skriptu se data ukládají do
> složky windows\system32 a ne do složky Pythonu, kam se data ukládají, když
> skript spustím přes IDLE. Potřebuji, aby se data ukládaly právě do složky
> Python.
>
> Zkoušel jsem zapínat/vypínat kolonku "Spustit s nejvyššími oprávněními",
> přihlásit se jako standardní uživatel/administrátor, ale nic nepomohlo.
>
> Nemáte někdo prosím nápad, jak to vyřešit?
> Děkuji mnohokrát.
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Plánovač úloh a Python

2018-07-23 Tema obsahu Petr Messner
Co to znamená - že když otevřeš soubor přes open(“data.txt”), tak se otevře 
někde ve windows\system? No tak ho otvirej s plnou cestou, ne? :) 
open(r“c:\nekde\data.txt”). 

Nebo si nastav current working directory:
https://docs.python.org/3/library/os.html#os-file-dir

Viz taky modul pathlib:
https://docs.python.org/3/library/pathlib.html

Petr Messner

23. 7. 2018 v 8:55, radekmes...@gmail.com:

> Dobrý den,
> předem  bych se chtěl omluvit za moji totální neznalost jazyka pythonu, ale 
> každý někdy začínal :)
> 
> Mám funkční skript, který potřebuji spouštět v určitý čas. Proto jsem si 
> vytvořil ve Win 7 událost. Jenže po spuštění skriptu se data ukládají do 
> složky windows\system32 a ne do složky Pythonu, kam se data ukládají, když 
> skript spustím přes IDLE. Potřebuji, aby se data ukládaly právě do složky 
> Python. 
> 
> Zkoušel jsem zapínat/vypínat kolonku "Spustit s nejvyššími oprávněními", 
> přihlásit se jako standardní uživatel/administrátor, ale nic nepomohlo.
> 
> Nemáte někdo prosím nápad, jak to vyřešit?
> Děkuji mnohokrát.
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Plánovač úloh a Python

2018-07-23 Tema obsahu starenka .
Ahoj,

hlavne zadnej stres, nikdo ti hlavu neukousne ;)

Nevidim ti do kodu, ale pokud delas se souborama a neuvadis cestu, bude se
ti to vzdycky ukladat "tam, kde stojis". Zkus si data z aplikace ukladat
treba do home adresare ala
os.expandvars(os.path.join('~','mojeappka','mujsoubor'))

(za pripadnou nefunkcnost se omlouvam, pisu po pameti z mobilu)

starenka
-
'aknerats'[::-1]

On Jul 23, 2018 09:00,  wrote:

Dobrý den,
předem  bych se chtěl omluvit za moji totální neznalost jazyka pythonu, ale
každý někdy začínal :)

Mám funkční skript, který potřebuji spouštět v určitý čas. Proto jsem si
vytvořil ve Win 7 událost. Jenže po spuštění skriptu se data ukládají do
složky windows\system32 a ne do složky Pythonu, kam se data ukládají, když
skript spustím přes IDLE. Potřebuji, aby se data ukládaly právě do složky
Python.

Zkoušel jsem zapínat/vypínat kolonku "Spustit s nejvyššími oprávněními",
přihlásit se jako standardní uživatel/administrátor, ale nic nepomohlo.

Nemáte někdo prosím nápad, jak to vyřešit?
Děkuji mnohokrát.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

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

Visit: http://www.py.cz


[python] Plánovač úloh a Python

2018-07-23 Tema obsahu radekmesner
Dobrý den,
předem  bych se chtěl omluvit za moji totální neznalost jazyka pythonu, ale 
každý někdy začínal :)

Mám funkční skript, který potřebuji spouštět v určitý čas. Proto jsem si 
vytvořil ve Win 7 událost. Jenže po spuštění skriptu se data ukládají do složky 
windows\system32 a ne do složky Pythonu, kam se data ukládají, když skript 
spustím přes IDLE. Potřebuji, aby se data ukládaly právě do složky Python. 

Zkoušel jsem zapínat/vypínat kolonku "Spustit s nejvyššími oprávněními", 
přihlásit se jako standardní uživatel/administrátor, ale nic nepomohlo.

Nemáte někdo prosím nápad, jak to vyřešit?
Děkuji mnohokrát.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz