Wersja systemu Windows w wersji Python 2.6.4: Czy istnieje sposób sprawdzenia, czy podproces.spopen() kończy się niepowodzeniem podczas korzystania z powłoki = prawda?Sposób określania podprocesu.Popen() nie powiodło się, gdy shell = True
Popen() nie powiedzie się, gdy powłoka skutecznie = False
>>> import subprocess
>>> p = subprocess.Popen('Nonsense.application', shell=False)
Traceback (most recent call last):
File ">>> pyshell#258", line 1, in <module>
p = subprocess.Popen('Nonsense.application')
File "C:\Python26\lib\subprocess.py", line 621, in __init__
errread, errwrite)
File "C:\Python26\lib\subprocess.py", line 830, in
_execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
Ale kiedy shell = True, wydaje się, że nie da się ustalić, czy Popen() połączenie zostało nawiązane, czy nie.
>>> p = subprocess.Popen('Nonsense.application', shell=True)
>>> p
>>> subprocess.Popen object at 0x0275FF90>>>
>>> p.pid
6620
>>> p.returncode
>>>
Pomysły docenione.
Pozdrawiam, Malcolm
Dziękuję za odpowiedzi. Sonda(), po której następuje technika kodu powrotu, jest właśnie rozwiązaniem, którego szukałem. – Malcolm