使用Python创建文件的唯一标识符

问题描述 投票:2回答:1

我正在寻找一种可靠的解决方案,为测量数据文件定义唯一的标识符。我从不同的来源(主要是从网络存储)收集数据。数据文件可能会被重命名并多次复制到其他位置。该方法仅需要在Windows平台上运行。到目前为止,我执行以下操作:根据上次修改时间和文件大小创建一个ID。我认为该文件在测量过程中只会创建一次,以后再也不会修改。这是我当前的实现:

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

这个想法行得通,还是我总体上错过了一些东西?为该问题完成可靠解决方案的最佳实践是什么?还是应该使用一些校验和算法,推荐什么?

python checksum uniqueidentifier uid
1个回答
0
投票

我建议为每个文件分配一个简短的UDID。您可以使用诸如shortuuid之类的东西:

pip install shortuuid

然后就是

shortuuid.ShortUUID().random(length=22)
© www.soinside.com 2019 - 2024. All rights reserved.