我想通过这种方式指定所需格式的日期作为文件名 ;
期间 [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/