Создайте уникальный идентификатор для файлов, используя Python - PullRequest
2 голосов
/ 03 апреля 2020

Я ищу надежное решение для определения уникального идентификатора для файлов данных измерений. Я собираю данные из разных источников, в основном из сетевого хранилища. Файлы данных могут быть переименованы и скопированы более одного раза в разные места. Метод должен работать только на платформе Windows. Пока что я делаю следующее: создаю идентификатор из времени последней модификации и размер файла. Я предполагаю, что файл будет создан только один раз в процессе измерения и никогда не будет изменен впоследствии. Это моя текущая реализация:

import pathlib
import datetime

def file_uid(file):

    fname = pathlib.Path(file)
    mod_time = datetime.datetime.fromtimestamp(fname.stat().st_mtime).strftime("%d.%m.%Y %H:%M:%S")
    file_size = fname.stat().st_size
    uid = '%s%s%s' %(mod_time,'_',str(file_size))
    return uid

Может ли эта идея работать, или я что-то пропустил в целом? Что будет наилучшей практикой для достижения sh надежного решения этой проблемы? Или я должен go с некоторым алгоритмом контрольной суммы и что было бы рекомендовано?

1 Ответ

0 голосов
/ 03 апреля 2020

Я бы рекомендовал присваивать каждому файлу короткий UDID. Вы можете использовать что-то вроде shortuuid:

pip install shortuuid

, а затем просто

shortuuid.ShortUUID().random(length=22)
...