Почему подстановочный знак glob * не работает в python subprocess.call?

Я хочу использовать такой шаблон глобуса в функции subprocess.call:

>>> subprocess.call(["ls", "output*"])
ls: cannot access output*: No such file or directory
2
>>> subprocess.call(["ls", "output\*"])
ls: cannot access output\*: No such file or directory
2

Но нельзя использовать шаблон glob(*) после имени файла "output" выше.


person mkzia    schedule 07.05.2015    source источник


Ответы (1)


Подстановка (расширение *) - это функция вашей оболочки. Вам нужно добавить параметр shell=True для выполнения команды через интерпретатор оболочки.

subprocess.call("ls output*", shell=True)
person ILostMySpoon    schedule 07.05.2015