免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2324 | 回复: 2
打印 上一主题 下一主题

《求教》修改一个脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-03 13:08 |只看该作者 |倒序浏览
本帖最后由 skyeydemon 于 2010-09-03 13:15 编辑

写了这么一个脚本:

#!/usr/bin/env python
###############################################
#List the date you specified the range of time            
###############################################
import datetime

TheStartDay = datetime.date(2010,8,15)
TheEndofDay = datetime.date(2010,9,1)

TheStart = TheStartDay.strftime("%Y%m%d")
TheEnd = TheEndofDay.strftime("%Y%m%d")

while TheStart <= TheEnd:
        print TheStart,
        TheStartDay = TheStartDay + datetime.timedelta(days=1)
        TheStart = TheStartDay.strftime("%Y%m%d")

执行:
# ./time_range.py
20100815 20100816 20100817 20100818 20100819 20100820 20100821 20100822 20100823 20100824 20100825 20100826 20100827 20100828 20100829 20100830 20100831 20100901


是用来实现列出所指定起始日期和终止日期之间的所有时间的。现在功能已经达到了,但是有点问题。
想把脚本改成如下方式:

# ./time_range.py  20100815 20100901
就能输出,不用修改里面的内容。
这个要怎么做?
用sys.argv实现么?

论坛徽章:
0
2 [报告]
发表于 2010-09-03 15:34 |只看该作者
用了个笨办法,楼主看看能满足需求不。

  1. #!/usr/bin/env python
  2. ###############################################
  3. #List the date you specified the range of time            
  4. ###############################################
  5. import datetime
  6. import sys

  7. def usage(e):

  8.     print """Usage: time_range.py [start_time] [end_time]
  9.                     start_time: YYYYMMDD    end_time: YYYYMMDD
  10.           """
  11.     sys.exit(e)


  12. #TheStartDay = datetime.date(2010,8,15)
  13. #TheEndofDay = datetime.date(2010,9,1)
  14. if len(sys.argv) != 3:
  15.     usage(1)


  16. start = sys.argv[1]
  17. end = sys.argv[2]


  18. if (len(start) != 8) or (len(end) != 8):
  19.     usage(1)

  20. start_year = int(start[0:4])
  21. start_month = int(start[4:6])
  22. start_day = int(start[6:])

  23. end_year = int(end[0:4])
  24. end_month = int(end[4:6])
  25. end_day = int(end[6:])


  26. TheStartDay = datetime.date(start_year, start_month, start_day)
  27. TheEndofDay = datetime.date(end_year, end_month, end_day)

  28. TheStart = TheStartDay.strftime("%Y%m%d")
  29. TheEnd = TheEndofDay.strftime("%Y%m%d")

  30. while TheStart <= TheEnd:
  31.         print TheStart,
  32.         TheStartDay = TheStartDay + datetime.timedelta(days=1)
  33.         TheStart = TheStartDay.strftime("%Y%m%d")
复制代码
提取时间参数的办法比较弱智,抛砖引玉吧。

论坛徽章:
0
3 [报告]
发表于 2010-09-03 23:05 |只看该作者
回复 2# chinaunix874


    呵呵,多谢了。功能上已经是满足了。
学习了。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP