Python列出文件的较新版本

2024-06-01 08:03:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要打印最新版本的文件:

filenames = [
'jaks-dataformat-cbor-2.6.6.jar',
'sqljdbc42-4.2.jar',
'sqljdbc42-4.3.jar',
'spark-core_2.10-1.6.2.jar',
'spark-core_2.10-1.6.4.jar',
'commons-cli-1.2.jar',
]

在上面的列表中,我有两个sqljdbc42-4.2.jarsqljdbc42-4.3.jar。我只想打印4.3一个,同样的火花核心只打印6.4一个。我试过一些模式,但都没用。谢谢你的帮助。你知道吗

这是我能得到的,如果文件名开始相同,只有扩展名是不同的。你知道吗

sorted_files = sorted(filenames, key=lambda x: int(x.split('.')[1]))
print sorted_files

Tags: 文件core版本列表clifilessparkjar
1条回答
网友
1楼 · 发布于 2024-06-01 08:03:59

我想我会把保罗·鲁尼在评论中的建议付诸实践

filenames = [
'jaks-dataformat-cbor-2.6.6.jar',
'sqljdbc42-4.2.jar',
'sqljdbc42-4.3.jar',
'spark-core_2.10-1.6.2.jar',
'spark-core_2.10-1.6.4.jar',
'commons-cli-1.2.jar',
]

from collections import OrderedDict

latest_versions = list(OrderedDict([fn.rsplit('-', 1) for fn in filenames]).items())

new_filenames = []

for fn in latest_versions:
    new_filenames.append(''.join(fn))

结果是:

print new_filenames
['jaks-dataformat-cbor2.6.6.jar', 'sqljdbc424.3.jar', 'spark-core_2.101.6.4.jar', 'commons-cli1.2.jar']

也许不是最好的解决办法,但希望它能帮到你。你知道吗

相关问题 更多 >