将所需的日期格式设置为Python中的文件名

将所需的日期格式设置为Python中的文件名,python,datetime,Python,Datetime,我想用这种方式将所需格式的日期指定为文件名 ; [2019-10-01 09:00~2019-10-02 08:59:59] 将数据保存到191001-09.txt 我对此一无所知。我只能遵循简单的代码。 请让我知道如何修复它: def timeStamped (fname, fmt = '19% m% d-% H {fname} '): return datetime.datetime.now (). strftime (fmt) .format (fname = fname) wit

我想用这种方式将所需格式的日期指定为文件名 ;

[2019-10-01 09:00~2019-10-02 08:59:59] 将数据保存到191001-09.txt

我对此一无所知。我只能遵循简单的代码。 请让我知道如何修复它:

def timeStamped (fname, fmt = '19% m% d-% H {fname} '):
    return datetime.datetime.now (). strftime (fmt) .format (fname = fname)
with open (timeStamped ('. txt'), 'a') as f_last:
    f_last.write ('data')
问题:来自
datetime.now()的条件文件名

  • 导入所需的对象
  • 定义一个从
    datetime.date
    对象获取所需文件名的函数:

    def fname_from_date(date):
        # Rule  09:00:00 ~ day + 1 08:59:59 
        midnight = date.replace(hour=0, minute=0, second=0)
        begin_of_day = date.replace(hour=9, minute=0, second=0)
        end_of_day = date.replace(hour=8, minute=59, second=59)
    
        # Are we between 'midnight' and 'end_of_day'
        if date >= midnight and date <= end_of_day:
            date = date - timedelta(days=1)
            print('\tNext day -1: {}'.format(date))
    
        # 191001-09.txt
        fname = date.strftime('%Y%m%d-09')
        return fname
    
    输出

    2019-10-01 09:00:00
        20191001-09.txt
    2019-10-01 11:01:11
        20191001-09.txt
    2019-10-02 07:07:07
        Next day -1: 2019-10-01 07:07:07
        20191001-09.txt
    2019-10-02 08:59:59
        Next day -1: 2019-10-01 08:59:59
        20191001-09.txt
    
用法

问题:来自
datetime.now()的条件文件名

  • 导入所需的对象
  • 定义一个从
    datetime.date
    对象获取所需文件名的函数:

    def fname_from_date(date):
        # Rule  09:00:00 ~ day + 1 08:59:59 
        midnight = date.replace(hour=0, minute=0, second=0)
        begin_of_day = date.replace(hour=9, minute=0, second=0)
        end_of_day = date.replace(hour=8, minute=59, second=59)
    
        # Are we between 'midnight' and 'end_of_day'
        if date >= midnight and date <= end_of_day:
            date = date - timedelta(days=1)
            print('\tNext day -1: {}'.format(date))
    
        # 191001-09.txt
        fname = date.strftime('%Y%m%d-09')
        return fname
    
    输出

    2019-10-01 09:00:00
        20191001-09.txt
    2019-10-01 11:01:11
        20191001-09.txt
    2019-10-02 07:07:07
        Next day -1: 2019-10-01 07:07:07
        20191001-09.txt
    2019-10-02 08:59:59
        Next day -1: 2019-10-01 08:59:59
        20191001-09.txt
    
用法


这篇文章将使事情的工作存储成字符串格式,并使用正则表达式。感谢您的链接。但似乎没有办法设定具体的时间范围。对我来说申请太难了。谢谢你让我知道旁路法,但也很难。我应该多想想。谢谢你们两位。这篇文章将使事情工作存储成字符串格式,并使用正则表达式。谢谢你们的链接。但似乎没有办法设定具体的时间范围。对我来说申请太难了。谢谢你让我知道旁路法,但也很难。我应该多想想。谢谢你们,非常感谢。我试试看。非常感谢你。我试试看。
fname = '{}.txt'.format(fname_from_date(datetime.now()))