Очевидно, что я уже знаю, что strftime
и strptime
не любят байтовые строки в качестве параметров, однако я в рассоле здесь, потому что мне нужно прочитайте содержимое файла, в котором сохранены различные кодировки символов, и мне нужно обработать их все, и отправьте временную часть каждой строки в этом текстовом файле на strptime()
.time.strptime() - аргумент 0 должен быть str, а не байтами
Быстрое исправление будет состоять в том, чтобы разбить строку, убедившись, что время просто содержит числа и тире, но возможно ли каким-то образом передать объект байта, не пытаясь определить кодировку до strptime()
?
with open('file.txt', 'rb') as fh:
for line in fh:
time.strptime(line, '%Y-%m-%d ...')
Это, очевидно, не получится. Я думал, что делать repr(line)
но что заставляет строку выглядеть b'2014-01-07 ...'
, который я мог бы раздеть ..
Вы должны '.decode()', но не зная кодировку, это не будет легко. – geoffspear
@Wooble: Ну, это соответствует шаблону даты и времени, это почти наверняка будет соответствовать ASCII. –
"имеет различные кодировки символов, сохраненные в нем, и мне нужно обрабатывать их все" – geoffspear