Moduł podprocesu Pythona umożliwia tworzenie nowych procesów, łączenie się z ich potokami wejścia / wyjścia / błędów i uzyskiwanie ich kodów powrotu. Użyj go, aby uruchomić polecenie powłoki lub plik wykonywalny w Pythonie.
Używam skryptu python jako sterownika kodu hydrodynamicznego. Kiedy przychodzi czas na uruchomienie symulacji, używam subprocess.Popendo uruchomienia kodu, zbieram dane wyjściowe ze stdout i stderr do subprocess.PIPE--- następnie mogę wydrukować (i zapisać w pliku dziennika) informacje wyjściowe i sprawdzić, czy nie ma błędów . Problem polega na tym, że nie mam …
Chcę wywołać zewnętrzny program z Pythona. Użyłem obu Popen()i call()do tego. Jaka jest różnica między nimi? Moim konkretnym celem jest uruchomienie następującego polecenia z Pythona. Nie wiem, jak działają przekierowania. ./my_script.sh > output Przeczytałem dokumentację i mówi, że call()jest to funkcja wygoda lub funkcja skrótu. Czy tracimy jakąkolwiek moc, używając …
Próbuję napisać skrypt opakowujący dla programu wiersza poleceń (weryfikacja svnadmin), który będzie wyświetlał ładny wskaźnik postępu operacji. Wymaga to ode mnie możliwości zobaczenia każdego wiersza wyjścia z opakowanego programu, gdy tylko zostanie on wyprowadzony. Pomyślałem, że po prostu uruchomię program za pomocą subprocess.Popen, użyję stdout=PIPE, a następnie przeczytam każdą linię, …
Próbuję uruchomić program, aby wykonać kilka wywołań systemowych w kodzie Pythona, przy użyciu subprocess.call()którego zgłasza następujący błąd: Traceback (most recent call last): File "<console>", line 1, in <module> File "/usr/lib/python2.7/subprocess.py", line 493, in call return Popen(*popenargs, **kwargs).wait() File "/usr/lib/python2.7/subprocess.py", line 679, in __init__ errread, errwrite) File "/usr/lib/python2.7/subprocess.py", line 1249, in …
Muszę asynchronicznie uruchomić polecenie powłoki ze skryptu w języku Python. Rozumiem przez to, że chcę, aby mój skrypt Pythona działał dalej, podczas gdy zewnętrzne polecenie wyłącza się i robi wszystko, co musi. Przeczytałem ten post: Wywołanie polecenia zewnętrznego w Pythonie Potem wyszedłem i zrobiłem kilka testów i wygląda na to, …
Chcę wykonać skrypt w podkatalogu / superkatalogu (najpierw muszę być w tym podkatalogu / superkatalogu). Nie mogę wejść subprocessdo mojego podkatalogu: tducin@localhost:~/Projekty/tests/ve$ python Python 2.7.4 (default, Sep 26 2013, 03:20:26) [GCC 4.7.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> import os >>> …
Ponieważ os.popen jest zastępowane przez subprocess.popen, zastanawiałem się, jak skonwertować os.popen('swfdump /tmp/filename.swf/ -d') to subprocess.popen () Próbowałem: subprocess.Popen("swfdump /tmp/filename.swf -d") subprocess.Popen("swfdump %s -d" % (filename)) # NOTE: filename is a variable # containing /tmp/filename.swf Ale myślę, że nie piszę tego poprawnie. Każda pomoc będzie mile widziana. Dzięki
Co robię w linii poleceń: cat file1 file2 file3 > myfile Co chcę zrobić z Pythonem: import subprocess, shlex my_cmd = 'cat file1 file2 file3 > myfile' args = shlex.split(my_cmd) subprocess.call(args) # spits the output in the window i call my python program
subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"]) Teraz mam skrypt, który uruchamiam. Kiedy go uruchamiam i trafia w tę linię, zaczyna drukować dane, ponieważ run.sh ma w sobie wydruki. Jak przesłać to również do pliku tekstowego? (A także wydrukuj, jeśli to możliwe)
Czy ktoś może wyjaśnić, dlaczego oczekiwany przeze mnie wynik, „cześć”, jest poprzedzony literą „b” i zakończony nową linią? Używam Pythona 3.3 >>> import subprocess >>> print(subprocess.Popen("echo hi", shell=True, stdout=subprocess.PIPE).communicate()[0]) b'hi\n' To dodatkowe `` b '' nie pojawia się, jeśli uruchomię go z Pythonem 2.7
Chcę subprocess.Popen()rsync.exe w systemie Windows i wydrukować standardowe wyjście w Pythonie. Mój kod działa, ale nie rejestruje postępu, dopóki nie zakończy się przesyłanie pliku! Chcę wydrukować postęp dla każdego pliku w czasie rzeczywistym. Używając Pythona 3.1 teraz, ponieważ słyszałem, powinno być lepsze w obsłudze IO. import subprocess, time, os, sys …
Używam Pythona subprocess.communicate()do odczytu standardowego wyjścia z procesu, który działa przez około minutę. Jak mogę wydrukować każdą linię tego procesu stdoutw sposób strumieniowy, aby zobaczyć wynik w postaci, w jakiej jest generowany, ale nadal blokować zakończenie procesu przed kontynuowaniem? subprocess.communicate() wydaje się dawać wszystkie wyniki naraz.
import subprocess def my_function(x): return x + 100 output = subprocess.Popen(my_function, 1) #I would like to pass the function object and its arguments print output #desired output: 101 Znalazłem tylko dokumentację dotyczącą otwierania podprocesów za pomocą oddzielnych skryptów. Czy ktoś wie, jak przekazywać obiekty funkcyjne, a nawet prosty sposób na …
Mam skrypt, w którym uruchamiam się za pomocą polecenia powłoki. Problem polega na tym, że skrypt nie czeka, aż polecenie popen zakończy się i od razu kontynuuje działanie. om_points = os.popen(command, "w") ..... Jak mogę powiedzieć mojemu skryptowi Pythona, aby zaczekał, aż polecenie powłoki zakończy się?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.