从大列表中识别最新版本文件的逻辑是什么?

时间:2016-03-11 18:06:14

标签: algorithm sorting comparison

我在一个文件夹中有200个图像,每个文件可能包含多个版本(例如:car_image#2,car_image#2,bike_image#2等)。我的要求是构建一个实用程序,将所有最新文件从此目录复制到另一个目录。

我的方法是:

  1. 将imagesNames(不包含版本号)放入列表
  2. 消除列表中的重复项
  3. 遍历列表并确定每个唯一文件的最新版本(我在此步骤中模糊不清) 有人可以抛出一些更好的想法/算法来实现这个目标吗?

2 个答案:

答案 0 :(得分:0)

我的方法是:

  1. 通过将每个文件名设置为#来制作唯一名称列表,只添加唯一值。
  2. 创建一个以文件名作为键的字典,并将值设置为版本号,当它大于存储的值时进行更新。
  3. 浏览字典并生成要抓取的文件名。
  4. 我的目标是一个python脚本,但你应该能够用你认为合适的任何语言来做这个。

    获取文件名列表的ex代码:

    #get the filename list
    myList = []
    for x in file_directory:
        fname = x.split("#")[0]
        if not fname in myList:
            myList = myList + [fname]
    myDict = {}
    for x in myList:
        if not x in myDict:
            myDict[x] = 0
    for x in file_directory:
        fversion = x.split("#")[-1]
        if myDict[x] < int(fversion):
            myDict[x] = fversion
    flist = []
    for x in myDict:
        fname = str(x) + "#" + str(myDict[x])
        flist.append(fname)
    

    然后flist将是最新版本的文件名列表

    我没有运行这个或任何东西,但希望它有所帮助!

答案 1 :(得分:0)

在Python 3中

RandIndex