/ / Підпроцесор Python не працює на Windows 7 - python, windows, підпроцесор

Підпроцесор Python не працює на Windows 7 - python, windows, subprocess

Чи може хто-небудь пояснити, що відбувається тут? Навіть вбудовані команди cmd.exe не працюють:

Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.call("dir")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:Python34libsubprocess.py", line 535, in call
with Popen(*popenargs, **kwargs) as p:
File "D:Python34libsubprocess.py", line 848, in __init__
restore_signals, start_new_session)
File "D:Python34libsubprocess.py", line 1104, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
>>>

Відповіді:

6 за відповідь № 1

Використовувати "dir", ви повинні пройти shell=True:

>>> import subprocess
>>> subprocess.call("dir", shell=True)

Ви повинні це зробити, тому що dir вбудований в саму оболонку, це не окрема консольна програма, про що також згадується в subprocess.Popen документація:

У Windows з оболонкою = Правда, змінну середовища COMSPEC вказує оболонка за замовчуванням. Єдиний раз, коли вам потрібно вказати shell = True on Windows, коли команда, яку ви хочете виконати, вбудована в оболонка (наприклад, директорія або копія). Вам не потрібна shell = True для запуску партії файловий або консольний виконуваний файл.