Python如何从文件名拆分得到的版本列表中提取最大数值
实现思路
- 遍历文件时不要直接打印拆分结果,先将版本各段转为整数后存入列表,利用Python元组支持按位比较的特性直接取最大值即可。
完整可运行代码
import glob version_list = [] for file_name in glob.iglob('src/*/*', recursive=True): file_result = file_name.split('/')[2] final_string = file_result.split('__')[0] versions = final_string.split('.') # 版本各段转整数元组,去掉首段的V前缀 ver_tuple = tuple(int(part.lstrip('V')) if part.startswith('V') else int(part) for part in versions) version_list.append(ver_tuple) # 取最大版本 max_version = max(version_list) # 转回原格式输出 max_version_str = f"V{max_version[0]}.{max_version[1]}.{max_version[2]}" print(f"最大版本号为:{max_version_str}")
简化方案(仅取第三个位置的最大数值
如果你的需求仅为仅取列表第三位的最大数值,可以直接简化处理:
import glob max_num = 0 for file_name in glob.iglob('src/*/*', recursive=True): file_result = file_name.split('/')[2] final_string = file_result.split('__')[0] versions = final_string.split('.') current_num = int(versions[2]) if current_num > max_num: max_num = current_num print(f"最大数值为:{max_num}")
使用你给出的样例输出运行上述代码,最终会返回结果51,符合预期。
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

