Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2012 10:57:01

vlados
От:
Зарегистрирован: 2011-07-28
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с реализацией

Всем привет,
у меня есть файл users.cvs, в который имеет такую структуру(user;date):

lamigo;27.09.2011
dmx;12.04.2011
tony;14.11.2011
...
house;10.01.2012
Мне нужно сделать скрипт, который посредством дерганья через курл удалял аккаунты(строку) которые уже зарегистрированы 30 дней, например house, он зарегистрирован 10.01.2012, то есть я буду дергать файл(скрипт на питоне, который удаляет строки) который удаляет так же другие строки, и после 30 дней он удаляет аккаунт.
Я понимаю нужно делать так:
Парсим файл, достаем дату из файла и берем сегодняшнюю дату и сверяем их, если прошло с записаной даты уже 30 дней, то удаляем файл, если нет, то оставляем.
Но как такое реализовать даже и не знаю…

Заранее спасибо за помощь!



Офлайн

#2 Янв. 12, 2012 13:05:08

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Помогите с реализацией

Как-то так:

#!/usr/bin/env python
#coding: utf8

import sys
from datetime import datetime, timedelta

INPUT_CSV='users.csv'
MAX_DAYS=30

def is_outdate(row, max_days=timedelta(days=MAX_DAYS)):
user_date = row.split(';')
if len(user_date) != 2:
return False
date = datetime.strptime(user_date[1], '%d.%m.%Y')
return datetime.now() - date < max_days

def main(args):
with open(INPUT_CSV,'r+') as fd:
rows = filter(is_outdate, map(lambda a: a.strip(), fd))
fd.seek(0)
fd.truncate(0)
fd.write('\n'.join(rows))
return 0

sys.exit(main(sys.argv))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version