V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sinux
V2EX  ›  Python

分享一个并没有什么卵用的 Python 库: PyTime

  •  3
     
  •   sinux · 2015-05-15 21:26:33 +08:00 · 5600 次点击
    这是一个创建于 3498 天前的主题,其中的信息可能已经有所发展或是发生改变。

    (其实就是厚着脸皮来求Star的, 噗)

    仓库地址:https://github.com/shnode/PyTime

    安装:

    pip install pytime
    

    主要作用就是通过字符串的方法操纵时间戳,以及不规则的datetime string的规则化。

    >>>from pytime import pytime
    >>>
    >>>pytime.before('2015.5.17', '2years 3mon 3d 2hr' )
    datetime.datetime(2013, 2, 13, 22, 0)
    >>>
    >>>pytime.after(pytime.tomorrow(), '23month3dy29minu')
    datetime.datetime(2017, 4, 19, 0, 29)
    

    随包附赠了西方节日和常用的时间段,x时间之前,x时间之后等方便写脚本的时候计算时间。

    在test并没有完全覆盖(明明是基本不覆盖,摔)以及代码还很粗糙的情况下,我还是上了包管理...

    总之欢迎star ,fork , 提意见,pull request, 推荐工作,搞基,介绍女朋友之类啦╮(╯▽╰)╭

    第 1 条附言  ·  2015-05-16 20:36:02 +08:00
    测试已经覆盖了!增加了某一天的上个星期,下个月之类的东西啦,仍然是字符串和时间戳都接受的,更方便写脚本和(伪)自动化运维啦。
    第 2 条附言  ·  2015-05-16 20:44:41 +08:00
    被Python Trending 捕获到并发到官推上啦:)


    第 3 条附言  ·  2015-05-16 22:27:02 +08:00
    已经进入 Awesome-python 的Date and Time区域。(https://github.com/vinta/awesome-python#date-and-time )
    33 条回复    2015-05-17 18:46:12 +08:00
    GeekGao
        1
    GeekGao  
       2015-05-15 21:34:45 +08:00   ❤️ 1
    顶 标题
    viko16
        2
    viko16  
       2015-05-15 21:43:00 +08:00   ❤️ 1
    顶 自带吐槽
    redf
        3
    redf  
       2015-05-15 21:45:44 +08:00   ❤️ 1
    不错
    kqz901002
        4
    kqz901002  
       2015-05-15 21:46:24 +08:00   ❤️ 1
    顶头像
    redf
        5
    redf  
       2015-05-15 21:46:53 +08:00
    哦,对了,看下我的帖子...
    HanSonJ
        6
    HanSonJ  
       2015-05-15 21:48:12 +08:00   ❤️ 1
    看标题就有种预感,进来一看果然,我也写了这个一个,不过用的是golang

    https://github.com/Hanccc/timeutil
    rrfeng
        7
    rrfeng  
       2015-05-15 22:15:56 +08:00   ❤️ 1
    bash 下的 date 就很棒可以照着完成以下……
    LeoQ
        8
    LeoQ  
       2015-05-15 22:29:34 +08:00   ❤️ 1
    已star

    @rrfeng 同意
    HowardMei
        9
    HowardMei  
       2015-05-15 23:04:38 +08:00   ❤️ 1
    你在哪儿?要是在新加坡,我给你介绍女朋友,搞Java的萌妹子 xD
    Mirana
        10
    Mirana  
       2015-05-15 23:15:11 +08:00   ❤️ 1
    把舌头捋直再来
    staticor
        11
    staticor  
       2015-05-16 07:45:15 +08:00   ❤️ 1
    分享另一个 datetime的 https://github.com/crsmithdev/arrow
    jas0ndyq
        12
    jas0ndyq  
       2015-05-16 08:11:33 +08:00 via iPhone
    不错
    sinux
        13
    sinux  
    OP
       2015-05-16 09:33:46 +08:00
    @staticor arrow 和 dateutil 用的很多了,还有 pytimeparse我也看了,代码质量和时间的精度(尤其是在time的秒的阶段)自然都是水准很高的,而且pytimeparse全程使用正则,我是正则和字符串匹配混用的,哈哈,还是感谢支持:)
    msg7086
        14
    msg7086  
       2015-05-16 11:49:09 +08:00
    Rails用户表示,下面这种写法已经能满足大多数需要了……
    (2.years + 3.months + 3.days + 2.hours).from_now #=> 2017-08-18 22:46:11 -0700
    sinux
        15
    sinux  
    OP
       2015-05-16 11:59:34 +08:00
    @msg7086 Rails萌萌哒,然而Python没有这种方法...days以下可以用timedelta赋值之后加减,months和years要用正常 的加减之后,再replace时间戳里地数值,并且有年和月的进退位不是平滑的。
    msg7086
        16
    msg7086  
       2015-05-16 12:02:25 +08:00
    @sinux 本来想说能不能在python里也实现这样的功能。但是一想,python里的整数好像不是对象?
    sinux
        17
    sinux  
    OP
       2015-05-16 12:09:40 +08:00
    @msg7086 是对象的:)
    msg7086
        18
    msg7086  
       2015-05-16 12:16:42 +08:00
    @sinux 呃,那为啥没人搞1.days.ago?是因为类不能修改?还是说有哲学意味在里面?
    LPeJuN6lLsS9
        19
    LPeJuN6lLsS9  
       2015-05-16 12:43:45 +08:00
    @msg7086 抱歉插句话……这样的话可能要MyInt(1).days.ago了,你说的用法是ruby的int自带还是rails提供的呢?如果是后者,py应该也可以按照类似方法修改int
    eepaul
        20
    eepaul  
       2015-05-16 13:03:46 +08:00
    顶标题,湖南人?
    sinux
        21
    sinux  
    OP
       2015-05-16 13:18:45 +08:00
    @eepaul 哈哈不是啊,何以见得
    eepaul
        22
    eepaul  
       2015-05-16 13:21:29 +08:00
    @sinux 没什么卵用 用得很好
    sinux
        23
    sinux  
    OP
       2015-05-16 13:53:42 +08:00
    @eepaul ...其实也并不是没有什么用,主要看有没有相关的需求。
    wolfan
        24
    wolfan  
       2015-05-16 14:10:06 +08:00 via Android
    我想找个可以合并音频文件的py库不知有么?
    msg7086
        25
    msg7086  
       2015-05-16 14:25:48 +08:00
    @hantsuki rails提供,不过直接插入了数值类 (或者说Numeric)
    类似
    class Numeric:
    def hours:
    ...
    这样。
    LPeJuN6lLsS9
        26
    LPeJuN6lLsS9  
       2015-05-16 14:57:35 +08:00   ❤️ 2
    sinux
        27
    sinux  
    OP
       2015-05-16 15:11:07 +08:00
    @wolfan 看到你说的是波形叠加...这个真不知道
    iloveayu
        28
    iloveayu  
       2015-05-16 22:50:42 +08:00
    这头像配这标题,莫名其妙戳中笑点。23333
    sinux
        29
    sinux  
    OP
       2015-05-16 23:21:37 +08:00
    @iloveayu ....
    knktc
        30
    knktc  
       2015-05-17 10:31:06 +08:00
    我要写issue的话就是提一个:可否出个中国版的,增加中国节假日,应用场景是某些计划任务的灵活调整(这个估计需要联网获取节假日信息了,有点脑洞了)
    mingyun
        31
    mingyun  
       2015-05-17 11:10:26 +08:00   ❤️ 1
    star
    sinux
        32
    sinux  
    OP
       2015-05-17 13:53:56 +08:00
    @knktc 尝试写了农历,但是一直不准确,就放弃了。
    alexapollo
        33
    alexapollo  
       2015-05-17 18:46:12 +08:00
    嗯,看起来我也该写个easytime的库了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   859 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:13 · PVG 05:13 · LAX 13:13 · JFK 16:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.