Я пытаюсь создать файл журнала с информацией по порядку.Вот что у меня есть:
class ExecThread(threading.Thread):
def __init__(self, command):
self.command = command
self._lock = threading.Lock()
threading.Thread.__init__ ( self )
def run ( self ):
self._lock.acquire()
sys.stdout.write(''.join(["Executing: ",self.command,'\n']))
log_file.write(''.join([self.command,'\n']))
os.system(self.command)
self._lock.release()
for ive in locate('*.ive', root_dir):
command = "osgconv"
command = ''.join([command,' ',"-O OutputTextureFiles",' ', infile,' ', outfile,' ',"2>&1"])
conv_osg_thread = ExecThread(command)
conv_osg_thread.start()
conv_osg_thread.join()
Команда, которую я выполняю, имеет перенаправление в конце: «2> & 1» Когда я запускаю это, я получаю вывод подпроцесса перед сообщением «Executing blah», который указан первым!Я думал, что lock () это исправит, но нет.
Пожалуйста, помогите, я был бы очень признателен, если бы кто-то мог указать на мою ошибку.