在一堆文件名中,我需要找到最大的数字。
- model_dir.glob('weights_epoch_.tf.index') 返回一个生成器,但是然后呢?
/home/rac/amf9-horizon/weights_epoch_1.tf.index
/home/rac/amf9-horizon/weights_epoch_10.tf.index
/home/rac/amf9-horizon/weights_epoch_15.tf.index
/home/rac/amf9-horizon/weights_epoch_2.tf.index
/home/rac/amf9-horizon/weights_epoch_20.tf.index
/home/rac/amf9-horizon/weights_epoch_25.tf.index
/home/rac/amf9-horizon/weights_epoch_3.tf.index
/home/rac/amf9-horizon/weights_epoch_30.tf.index
/home/rac/amf9-horizon/weights_epoch_35.tf.index
/home/rac/amf9-horizon/weights_epoch_4.tf.index
/home/rac/amf9-horizon/weights_epoch_40.tf.index
/home/rac/amf9-horizon/weights_epoch_45.tf.index
/home/rac/amf9-horizon/weights_epoch_46.tf.index
/home/rac/amf9-horizon/weights_epoch_47.tf.index
/home/rac/amf9-horizon/weights_epoch_48.tf.index
/home/rac/amf9-horizon/weights_epoch_49.tf.index
/home/rac/amf9-horizon/weights_epoch_5.tf.index
/home/rac/amf9-horizon/weights_epoch_6.tf.index
/home/rac/amf9-horizon/weights_epoch_7.tf.index
/home/rac/amf9-horizon/weights_epoch_8.tf.index
/home/rac/amf9-horizon/weights_epoch_9.tf.index
返回int(49).
2条答案
按热度按时间jjhzyzn01#
像这样的东西会工作。
使用内置的
map
对每个file_names
应用正则表达式来提取数字,然后调用max
来提取最大的数字。编辑
由于该方法返回
PosixPath
的可迭代对象,因此需要首先将对象强制转换为str
:举个例子
ckocjqey2#
可能有更优雅的方法,但一种方法是用分隔符“/”分割从glob返回的每个路径,选择最后一个元素并过滤掉所有非数字字符。然后将这些字符串转换为int并查找最大值。就像这样: