Найти - Пользователи
Полная версия: Приоритет запускаемого процесса в Win
Начало » Python для экспертов » Приоритет запускаемого процесса в Win
1 2
qman
Всем спасибо,
нужного добился так
import win32process
CreationFlag = win32process.IDLE_PRIORITY_CLASS
ProcessZipBackup = subprocess.Popen(['7z.exe','a', FileNameArchive, self.FileNameBackup], shell=True, \
stdout=subprocess.PIPE,
creationflags = CreationFlag)
Ferroman
P.S. Поправьте меня если я ошибаюсь, при использовании start создаются 2 процесса : start и 7z. Мы имеем возможность отследить завершение процесса start, а завершение второго 7z второго никак..
Абсолютно верно, это и есть причина.
нужного добился так
Собственно, я тоже так делал, но у меня были непонятные проблемы с правами запуска под 2003 сервером, по-этому я и менял приоритет у вызываемой программы (точнее не я сам).
Как это сделали - я честно говоря не знаю, - саму программу делал другой человек, он и поменял приоритет по моей просьбе :)
P.S. я из ms sql сервера делаю дамп базы данных в файл, а потом его упаковываю, может как то можно красиво сделать без создания временного файла?
pylzma usage
If you need to compress larger amounts of data, you should use the streaming version of the library. If supports compressing any file-like objects:
>>> from cStringIO import StringIO
>>> fp = StringIO('Hello world!')
>>> c_fp = pylzma.compressfile(fp, eos=1)
>>> compressed = ''
>>> while True:
... tmp = c_fp.read(1)
... if not tmp: break
... compressed += tmp
...
>>> pylzma.decompress(compressed)
'Hello world!'
Using a similar technique, you can decompress large amounts of data without keeping everything in memory:
>>> from cStringIO import StringIO
>>> fp = StringIO(pylzma.compress('Hello world!'))
>>> obj = pylzma.decompressobj()
>>> plain = ''
>>> while True:
... tmp = fp.read(1)
... if not tmp: break
... plain += obj.decompress(tmp)
...
>>> plain += obj.flush()
>>> plain
'Hello world!'
However this only works for streams that contain the End Of Stream marker. You must provide the size of the decompressed data if you don't include the EOS marker:
>>> from cStringIO import StringIO
>>> fp = StringIO(pylzma.compress('Hello world!', eos=0))
>>> obj = pylzma.decompressobj(maxlength=13)
>>> plain = ''
>>> while True:
... tmp = fp.read(1)
... if not tmp: break
... plain += obj.decompress(tmp)
...
>>> plain += obj.flush()
Traceback (most recent call last):
...
ValueError: data error during decompression

>>> obj.reset(maxlength=12)
>>> fp.seek(0)
>>> plain = ''
>>> while True:
... tmp = fp.read(1)
... if not tmp: break
... plain += obj.decompress(tmp)
...
>>> plain += obj.flush()
>>> plain
'Hello world!'
Please note that the compressed data is not compatible to the lzma.exe command line utility! To get compatible data, you can use the following utility function:
>>> import struct
>>> from cStringIO import StringIO

>>> def compress_compatible(data):
... c = pylzma.compressfile(StringIO(data))
... # LZMA header
... result = c.read(5)
... # size of uncompressed data
... result += struct.pack('<Q', len(data))
... # compressed data
... return result + c.read()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB