Есть два способа получить время мода, os.path.getmtime () или os.stat (), но ctime не является надежной кросс-платформенной (см. ниже).
getmtime ( путь ) Возвращает время последней модификации пути. Возвращаемое значение - это число, указывающее количество секунд с момента (см. Модуль времени). Поднимите os.error, если файл не существует или недоступен. Новое в версии 1.5.2. Изменено в версии 2.3: Если os.stat_float_times () возвращает True, результатом будет число с плавающей запятой.
stat ( путь ) Выполните системный вызов stat () по данному пути. Возвращаемое значение - это объект, атрибуты которого соответствуют членам структуры stat, а именно: st_mode (бит защиты), st_ino (номер inode), st_dev (устройство), st_nlink (количество жестких ссылок), st_uid (идентификатор пользователя владельца ), st_gid (идентификатор группы владельца), st_size (размер файла, в байтах), st_atime (время последнего доступа), st_mtime (время последней модификации контента), st_ctime (зависит от платформы, время изменения последних метаданных в Unix или время создания в Windows) :
>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L
>>>
В приведенном выше примере вы должны использовать statinfo.st_mtime или statinfo.st_ctime для получения mtime и ctime соответственно.
Вы можете использовать синтаксис Item =
:
fn parse<I: ToString, T: Iterator<Item = I>>(mut args: T) -> Result<String, String>
, что позволяет еще больше упростить это с помощью синтаксиса impl
:
fn parse<T: Iterator<Item = impl ToString>>(mut args: T) -> Result<String, String>
и наконец:
fn parse(mut args: impl Iterator<Item = impl ToString>) -> Result<String, String>
Я бы посчитал эту альтернативу более читабельной.
Да, вы можете сделать это с помощью предложения where
:
fn parse<T: Iterator>(mut args: T) -> Result<String, String>
where
<T as Iterator>::Item: ToString,
{
// ....
}
Или, поскольку здесь однозначно подразумевается Item
, граница может быть просто:
where T::Item: ToString