用日期填充文本文件

2024-03-29 00:36:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用一个日期归档我的文件,我有两个问题:

from datetime import date, datetime, timedelta

def perdelta(start, end, delta):
    curr = start
    while curr < end:
        yield curr
        curr += delta


fo = open("dattes.txt","wb")
for result in perdelta(date(2011, 10, 10), date(2011, 12, 12), timedelta(days=4)):
    fo.write(result)


fo.close()

1-我得到这个错误:

Traceback (most recent call last): File "C:\test\date.txt", line 12, in fo.write(result) TypeError: must be string or buffer, not datetime.date

2-我希望输出日期是连续的(在日、月和年之间没有“-”)


Tags: 文件infromtxtdatetimedateresultstart
2条回答

一个改变将解决两个问题:

fo.write(result.strftime('%Y%m%d\n'))

使用datetime.date.strftime格式化日期。你知道吗

如果不需要201110102011101420111018....,您可能需要在中间写换行符('\n')。你知道吗

所以

...
for result in perdelta(date(2011, 10, 10), date(2011, 12, 12), timedelta(days=4)):
    fo.write(result.strftime('%Y%m%d\n'))
....

备选方案

...
for result in perdelta(date(2011, 10, 10), date(2011, 12, 12), timedelta(days=4)):
    fo.write('{0:%Y%m%d}\n', result)
...

相关问题 更多 >