系统日期和字符串之间的时差,例如从目录名称?

时间:2009-09-28 14:45:53

标签: python date scripting

我想编写一个执行以下操作的小脚本(然后我可以使用我的crontab运行):

  • 查看包含名称为某种日期格式的目录的目录,例如: 30-10-09。

  • 将目录名称转换为它所代表的日期(当然,我可以将这些信息作为字符串放入这些目录中的文件中,这对我来说无关紧要。)

  • 将每个日期与当前系统时间进行比较,找到与当前系统日期具有特定时间差的日期,例如:不到两天。

  • 然后,对该目录中的文件执行某些操作(例如,将它们粘贴在一起并发送电子邮件)。

我知道一个小的bash脚本,但我不知道bash本身是否可以处理这个问题。我想我可以在R中做到这一点,但是需要运行的服务器没有R.

无论如何,我很好奇地学习一点Python或Ruby(两者都在服务器上)。

有人能指出我正确的方向吗?这可能是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

我建议使用Python。您需要以下功能:

  • os.listdir为您提供目录内容,作为字符串列表
  • time.strptime(name, "%d-%m-%y")将尝试解析此类字符串,并返回时间元组。如果解析失败,则会收到ValueError异常。
  • time.mktime会将时间元组转换为自纪元以来的秒数。
  • time.time返回自纪元以来的秒数
  • smtplib模块可以发送电子邮件,假设您知道要使用哪个SMTP服务器。或者,您可以通过子进程模块运行/usr/lib/sendmail(假设/usr/lib/sendmail已正确配置)