Нужно выполнить консольную команду под Windows и прочитать её вывод.
Есть вот такой код (не работает):
# -*- coding: utf-8 -*- import codecs, sys import subprocess sys.stdout = codecs.getwriter('cp866')(sys.stdout, errors='replace') stdOutErr = subprocess.Popen(['cmd', 'cmd', '/C', 'dir'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=u'c:\\temp\\Закачки').stdout for line in stdOutErr: print unicode(line, 'cp866').rstrip()
Если в качестве текущего каталога указать просто строку (не unicode), выдаёт "WindowsError: " в том же модуле.
Вопрос: как сделать правильно?
Кроме того, русские имена могут быть и в самой команде ('dir' приведено только для примера).