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

标签 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)
with open (timeStamped ('. txt'), 'a') as f_last:
    f_last.write ('data')

最佳答案

Question: Conditional file name from datetime.now()

  • 导入所需的对象
    from datetime import datetime, timedelta
    
  • 定义一个函数,从 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
    
  • 使用静态日期测试函数 def fname_from_date(...
    这需要从 datestr 创建一个 datetime.date 对象。
    for datestr in ['2019-10-01 09:00:00', 
                    '2019-10-01 11:01:11', 
                    '2019-10-02 07:07:07', 
                    '2019-10-02 08:59:59']:
        date = datetime.strptime(datestr, '%Y-%m-%d %H:%M:%S')
        print(date)
        fname = '{}.txt'.format(fname_from_date(date))
        print('\t{}'.format(fname))
    

    Output:

    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
    

Usage:

fname = '{}.txt'.format(fname_from_date(datetime.now()))

关于python - 在Python中将所需的日期格式设置为文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58178414/

相关文章:

python - 在函数中调用函数 - Python

javascript - 不能跨域。 XMLHttpRequest 无法加载 localhost :portNo1 . Origin localhost:portNo2 不允许 Access-Control-Allow-Origin

php微秒转换为DateTime并返回

csv - Bigquery 日期时间格式 csv 到 bigquery YYYY-MM-DD HH :MM[:SS[. SSSSSS]]

MYSQL 日期时间 : using slashes instead of of dahses

python - 处理日志以修复格式错误的 IP 地址 ?.?.?.x

python - Python中根据字符位置打印空格

javascript - 如何将 int 变量从 python 传输到 javascript?

sql - 如何在 T-SQL 中标准化混合日期格式的列

java 日期值显示不正确