Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
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
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.