2017-01-13 3 views
2

Я хочу открыть exe, который я создал, который находится в папке System32 Windows. Я делаю это по команде:Python не находит System32

subprocess.call(["C:\\Windows\\System32\\ListTest.exe"]) 

Но почему-то Python не находит папку System32. Я скопировал свой exe в директорию «System» в Windows, и если я хочу открыть exe через Python, все будет хорошо. Почему Python не находит каталог System32?

+0

попробовать с subprocess.call ([ "C: /Windows/System32/ListTest.exe"]) – Harsha

+0

же ошибки ... WindowsError: [Error 2] Система не удается найти указанный файл – user7353965

+0

Запуск с повышенными привилегиями? – 101

ответ

0

Try с shell =True:

import subprocess 
subprocess.call('dir', shell=True) 
+0

«ListTest.exe» не распознается как внутренняя или внешняя команда, исполняемая программа или командный файл. – user7353965

1

@eryksun и @Keith зал был правильный ответ.

Поскольку я использую 64-битную ОС с 32-битным python, она выглядит в неправильном каталоге.

system32 = os.path.join(os.environ['SystemRoot'], 'SysNative' if 
platform.architecture()[0] == '32bit' else 'System32') 
listtest_path = os.path.join(system32, 'ListTest.exe') 
subprocess.call([listtest_path]) 

полный код Теперь

+0

Строго было бы лучше использовать 'is_wow64 = (platform.architecture() [0] == '32bit' и 'ProgramFiles (x86)' в os.environ);' system32 = os.path.join (os. environ ['SystemRoot'], 'SysNative', если is_wow64 else 'System32') '. Это должно обрабатывать редкий случай работы Python на 32-битной Windows. – eryksun

Смежные вопросы