NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: Python - jak spustit a nechat běžert dva programy najednou?

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
David
Člen
Avatar
David:3.8.2020 14:25

Ahoj, opět jsem si zkusil některé příklady v Pythonu.
Ukoušel jsem rozběhnout dva různé programy najednou pomocí příkazů, které jsem našel na StackOwerflow . Ani jeden se mi ale nepodařilo rozběhnou

pythonscript1.py

for i in range(10)
        print("code 1")

pythonscript2.py

for i in range(10)
        print("code 2")

komentář 1 ze StackO.

pythonscript1.py &
pythonscript2.py &

komentář2 ze StackO.

import subprocess

subprocess.run("python3script1.py & python3script2.py", shell=True)

Prosím vás tedy o pomoc
Díky

 
Odpovědět
3.8.2020 14:25
Avatar
Mirek Slouka
Člen
Avatar
Odpovídá na David
Mirek Slouka:3.8.2020 15:33

Chybí ti tam čím chceš ten script spouštět.

import subprocess

subprocess.run("python python3script1.py & python python3script2.py", shell=True)

Tohle by mělo fungovat

edit:
to samé platí pro příkazovou řádku -> python python3script1.py & python python3script2.py

Editováno 3.8.2020 15:35
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
+1
3.8.2020 15:33
I can explain it to you, but I can't understand it for you.
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:4.8.2020 8:53

https://docs.python.org/…process.html?…
Bohuzel pythonova dokumentace stoji za houby, zadny takovy priklad tam nevidim :)

google = python subprocess.run example -python.org
https://pymotw.com/2/subprocess/

import subprocess

cat = subprocess.Popen(['cat', 'index.rst'],
                        stdout=subprocess.PIPE,
                        )

grep = subprocess.Popen(['grep', '.. include::'],
                        stdin=cat.stdout,
                        stdout=subprocess.PIPE,
                        )

cut = subprocess.Popen(['cut', '-f', '3', '-d:'],
                        stdin=grep.stdout,
                        stdout=subprocess.PIPE,
                        )

end_of_pipe = cut.stdout

print 'Included files:'
for line in end_of_pipe:
    print '\t', line.strip()

Podle mne, z toho examplu je jasne, ze se musi spoustet kazdy proces samostatne. Na dalsi strance je zas fura prikladu, ale bez komentare
https://www.programcreek.com/…bprocess.run

cmds = ["mutatest", "-s", "all_op_types.py", "-t", "echo 'fake'", "-n", "500", "-m", "f"]
subprocess.run(cmds, capture_output=False)

google = python subprocess.run python scripts example -python.org

subprocess.call(['python', 'somescript.py', somescript_arg1, somescript_val1,...])
subprocess.call(['python somescript.py'])
call('python somescript.py', shell=True)
call('python script.py'.split())

Podle vseho, se to da asi zapsat za sebe, oddeleno carkami. Ale, asi by bylo lepsi, spustit 2 soubory jako samostatne procesy nebo vyrobit jeden, ktery ty dva provede najednou.

 
Nahoru Odpovědět
4.8.2020 8:53
Avatar
David
Člen
Avatar
David:5.8.2020 20:42

Díky vám oběma :-)

 
Nahoru Odpovědět
5.8.2020 20:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.