Не удается заставить findstr работать с подпроцессом, запущенным в Windows - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу запустить findstr из своей среды python и не могу заставить его работать при вызове с использованием подпроцесса (я могу запустить команду findstr из командной строки с помощью приглашения dos):

commandlist = ['findstr', '/s', '"texttofind"', '*.py']
cwd = 'e:\\python'
shell = True
encoding = 'utf-8'
output = subprocess.run(commandlist, 
                    stdout=subprocess.PIPE,
                    stderr=subprocess.PIPE, 
                    encoding=encoding, shell=shell, cwd=cwd)

, который заканчивается кодом возврата 1:

CompletedProcess(args=['findstr', '/s', '"runrcode"', '*.py'],returncode=1, stdout='', stderr='')

Если вместо этого я использую commandlist = ['path'], то все работает нормально, в результате получается код возврата 0 и стандартный вывод с текстовым списком для путикак и ожидалось (конечно, чтобы это работало, оболочка должна быть True).

Есть идеи, как заставить это работать? Не уверен, что мне не хватает. Большое спасибо.

...