Подтвердить что ты не робот

Потокобезопасный эквивалент python time.strptime()?

Что-то, что я написал, выдает много исключений AttributeError при использовании time.strptime() внутри потока. Это похоже только на Windows (не на Linux), но независимо от того, что происходит в Gogling, кажется, что time.strptime() не считается потокобезопасным.

Есть ли лучший способ создать объект datetime из строки? Текущий код выглядит следующим образом:

val = DateFromTicks(mktime(strptime(val, '%B %d, %Y')))

Но это приводит к исключениям, которые выполняются внутри потока.

Спасибо!

4b9b3361

Ответ 1

В соответствии с отчет об ошибке это не происходит, если вы вызываете strptime один раз перед созданием потоков. Я сделал небольшое тестирование, которое, похоже, подтверждает это. Поэтому просто вызовите strptime во время инициализации в качестве обходного пути.

Ответ 2

Еще один обходной путь для этой ошибки, вы можете просто импортировать _strptime вручную, вместе с datetime

import _strptime
from datetime import datetime

# then, in threaded block
datetime.strptime(date, format)

Ответ 3

Вы пытались вручную синхронизировать его самостоятельно? Возможно использование декодера синхронизации из этот рецепт.

Ответ 4

Когда я использую import datetime, datetime.datetime.strptime() больше не генерирует исключение.