python 在给定一系列日期和文件模板的情况下查找丢失的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 在给定一系列日期和文件模板的情况下查找丢失的文件相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python

from datetime import date, datetime, timedelta
from os.path import isfile, basename
import sys

from string_utils.strings import replace_vars_in_string

script_name = basename(__file__)

def usage():

    print('{} [START-DATE] [END-DATE] [FILE-TEMPLATE]'.format(script_name))
    print('')
    print('  where:')
    print('')
    print('    START-DATE     start date (YYYYMMDD)')
    print('    END-DATE       end date (YYYYMMDD)')
    print('    FILE-TEMPLATE  file template (use {yyyy}, {mm}, and {dd})')
    print('')
    print('  For example:')
    print('')
    print('    {} 20140101 20141231 /data/{{yyyy}}/{{mm}}/{{dd}}/data-file-{{yyyy}}{{mm}}{{dd}}.txt'.format(script_name))
    print('')

def main():

    try:
        start_date = sys.argv[1]
        end_date = sys.argv[2]
        file_template = sys.argv[3]
    except IndexError:
        usage()
        sys.exit(2)

    start_date_obj = datetime.strptime(start_date, '%Y%m%d')
    end_date_obj = datetime.strptime(end_date, '%Y%m%d')

    date_list = [(start_date_obj + timedelta(days=i)).strftime('%Y%m%d') for i in range((end_date_obj - start_date_obj).days + 1)]

    none_missing = True
    for date in date_list:
        v = {'yyyy': date[0:4], 'mm': date[4:6], 'dd': date[6:8]}
        file = replace_vars_in_string(file_template, **v)
        if not isfile(file):
            none_missing = False
            print('Missing file: {}'.format(file))

    if none_missing:
        print('No missing files...')

if __name__ == '__main__':
    main()

以上是关于python 在给定一系列日期和文件模板的情况下查找丢失的文件的主要内容,如果未能解决你的问题,请参考以下文章

在给定一组地理坐标的情况下获取友好的位置名称?

是否可以在给定一组约束的情况下获得计算出的帧?

(模板)hdoj1251(字典树模板题)

如何在 python 的正则表达式中指定一系列 unicode 字符? [复制]

使用 python 编辑 .odt 文件

如何在python烧瓶中获取具有本地时区的模板文件的修改日期