Чем subprocess.call отличается от os.system - PullRequest
2 голосов
/ 03 июня 2011

У меня есть скрипт Python для установки / удаления некоторых регулярно используемых программ для меня, и он также выполняет очистку ярлыка / папки после удаления.Я использовал этот код для удаления папки

os.system('rd /S /Q "{0}\\{1}"'.format(dirname, name))

, которая работала просто отлично.Я пытаюсь преобразовать использование os.system в subprocess.call, поэтому я изменил приведенную выше строку на эту

subprocess.call(['rd', '/S', '/Q', '{0}\\{1}'.format(dirname, name)])

, но это дает ошибку

The system cannot find the file specified (2)

Я должен использоватьsubprocess.call неправильно, но я не могу решить это.Любая помощь будет оценена, спасибо.

1 Ответ

2 голосов
/ 03 июня 2011

Разница в том, что os.system выполняет в подоболочке по умолчанию, а subprocess.call - нет.Попробуйте использовать shell=True.

...