用日期填写文本文件

时间:2013-08-10 14:11:37

标签: python date file-io

我想用日期提交我的文件,我有02个问题:

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-我收到此错误:

  

追踪(最近一次通话):         文件“C:\ test \ date.txt”,第12行,in           fo.write(结果)       TypeError:必须是字符串或缓冲区,而不是datetime.date

2-i我希望输出日期是连续的(白天,月份和年份之间没有' - ')

2 个答案:

答案 0 :(得分:2)

一个变化将解决这两个问题:

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

答案 1 :(得分:2)

使用datetime.date.strftime格式化日期。

如果您不想'\n',可能需要在中间写一个换行符(201110102011101420111018....)。

所以,

...
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)
...