Форум сайта python.su
Проблема такова
я запускаю процесс (под win), но мне нужно установить приоритет для него. Как это сделать? Поиски ничего толком не дали.
line = 'FileConverter.exe '+ option + ' -version ' process = subprocess.Popen(line, shell=True, stdout=subprocess.PIPE) process.wait()
Офлайн
Popen( args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
……
The startupinfo and creationflags, if given, will be passed to the underlying CreateProcess() function. They can specify things such as appearance of the main window and priority for the new process. (Windows only)
……
Функция CreateProcess() - это функция из модуля - pywin32: win32process.CreateProcess()
Отредактировано (Ноя. 30, 2007 18:02:24)
Офлайн
shizaДа это я видел. Только что конкретно нужно установить, какие флаги или опции использовать я не нашел. Только это одно упоминание.
The startupinfo and creationflags, if given, will be passed to the underlying CreateProcess() function. They can specify things such as appearance of the main window and priority for the new process. (Windows only)
Офлайн
import win32process
CreationFlags = win32process.HIGH_PRIORITY_CLASS
Это в качестве наводки….
Ибо тут разобратся надо, чтоб приоритет повышался у приложения, а не у shell.
Наверное надо покопать доку на win32process.CreateProcess()
Отредактировано (Ноя. 30, 2007 18:06:03)
Офлайн
Ага, спасибо, это я неправильно перевёл “Indicates a process…”
UPD: Действительно изменяет приоритет шелла а не приложения.
Отредактировано (Ноя. 30, 2007 18:28:41)
Офлайн
Проблема приоритета решилась:
line = 'start /wait /low /b FileConverter.exe '+ option + ' -version ' process = subprocess.Popen(line, shell=True, stdout=subprocess.PIPE) process.wait()
Офлайн
По моему в этом случае c output будут проблемы.
Офлайн
Ferromanподскажите у вас код
line = ‘FileConverter.exe ’+ option + ‘ -version ’
process = subprocess.Popen(line, shell=True, stdout=subprocess.PIPE)
process.wait()
process.wait()
Отредактировано (Июль 21, 2008 13:00:39)
Офлайн
У меня тоже не сработало. Я переделал - убрал “start” и понизил процесс в самой программе, которую вызываю - тогда wait работает.
В вашем случае, я бы использовал LZMA SDK (http://www.7-zip.org/sdk.html) точнее PyLZMA (http://www.joachim-bauch.de/projects/python/pylzma), и просто делал сжатие в отдельном питоновском потоке.
Что-то тег url не сработал :/
Отредактировано (Июль 21, 2008 22:18:03)
Офлайн
Ferromanподскажите как вы понизили процесс в самой программе?
понизил процесс в самой программе
Офлайн