Ошибка - функция пропустила обязательный аргумент 'месяц' (поз. 2), отображается при попытке извлечь время в фиксированном формате - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь получить время в следующем формате, но я получаю сообщение об ошибке, что в функции отсутствует обязательный аргумент для month . Было бы очень полезно, если бы кто-то мог разрешить эту небольшую путаницу.

import datetime
startTimeList = ['drwxr-xr-x  3 plan 4096 Mar 21 02:00 file_listener', 'ksh', '010001', '0\n']
startTimeStr = int(startTimeList[2])
print(startTimeStr)
startTimeStr = datetime.datetime(startTimeStr)
startTime = startTimeStr.strftime("%I:%M:%S %p")
print(startTime)

Ожидаемый результат:

010001
01:00:01 AM

Отображаемая ошибка:

function missing required argument 'month' (pos 2)

1 Ответ

1 голос
/ 26 марта 2020

Преобразование startTimeList[2] в целое число не помогло вам, поскольку вам нужно было снова преобразовать его в строку.

datetime.datetime ожидает целочисленные аргументы year , месяц , день , а это не то, что вы хотели сделать.

Вы хотели использовать datetime.datetime.strptime для анализа строка '010001' в datetime.datetime объект, который затем можно преобразовать в строку другого формата с помощью strftime снова:

import datetime

startTimeList = ['drwxr-xr-x  3 plan 4096 Mar 21 02:00 file_listener', 'ksh', '010001', '0\n']
startTimeStr = startTimeList[2]
print(startTimeStr)

startTime = datetime.datetime.strptime(startTimeStr, "%H%M%S")
startTimeResult = startTime.strftime("%I:%M:%S %p")
print(startTimeResult)

Тем не менее, он дает 01:00:01 AM, поскольку не имеет возможности зная, что 010001 означает вечера времени.

...