gpt4 book ai didi

python - 按存储在列表中的数字序列查找丢失的文件名

转载 作者:太空宇宙 更新时间:2023-11-04 02:13:22 25 4
gpt4 key购买 nike

我有一个基于时间戳(date_millisecondtime.csv)的文件名的字符串列表,如下所示:

    [..., file_20181105_110001.csv, file_20181105_120002.csv,    file_20181105_130002.csv, file_20181105_140002.csv,    file_20181105_150003.csv, file_20181105_160002.csv,    file_20181105_170002.csv, file_20181105_200002.csv,    
file_20181105_210002.csv, file_20181106_010002.csv, file_20181106_020002.csv, file_20181106_030002.csv...]

所以这里的文件日期为 2018-11-05(2018 年 11 月 5 日),时间戳为 11、12、13、14、15、16、17、20 和 21。

我只想打印文件名 18 和 19,因为它们丢失了。有效时间范围为 1 - 23,因此如果给定日期(此处为 2018-11-05)的文件名中的小时不存在于此范围内,则打印那些缺失的小时文件。

最佳答案

一种解决方案是使用集合理解来提取当前时间。如果我理解您的要求,您可以计算 minmax 时间,并从 range 派生的 set 中取差:

L = ['file_20181105_110001.csv', 'file_20181105_120002.csv', 'file_20181105_130002.csv',
'file_20181105_140002.csv', 'file_20181105_150003.csv', 'file_20181105_160002.csv',
'file_20181105_170002.csv', 'file_20181105_200002.csv', 'file_20181105_210002.csv']

present = {int(i.rsplit('_', 1)[-1][:2]) for i in L}

min_time, max_time = min(present), max(present)

res = set(range(min_time, max_time)) - present # {18, 19}

然后您可以根据丢失的时间构建您的文件名。我将把它留作练习 [提示:列表理解]。

关于python - 按存储在列表中的数字序列查找丢失的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53231948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com