我想用日期提交我的文件,我有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我希望输出日期是连续的(白天,月份和年份之间没有' - ')
答案 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)
...