Python 中使用 libmp3lame 进行 mp3 编解码

最近在研究 Python 的 mp3 编解码, 可能是 mp3 格式专利问题,这方面可用并且还在维护的 Python 库没发现几个 试了一下 pymedia 倒是可以,但是它官方支持的版本只到 Python 2.4 找了个第三方的 for Python 2.7 版本的, 发现它在 windows 下的实现中输出缓冲区大小写死成 10000 字节,导致解码的实时性差, 努力想把官方工程修改后迁移到 2.7 版本,最后还是放弃了… 也尝试直接用 Lame.exe 用管道收发数据,但是 Windows 下 Python 2.X 貌似不支持管道的异步读写,最后也放弃了 好在我只用考虑 windows 平台,最后通过 ctype 调用 libmp3lame.dll 中的方法实现了我要的功能 代码很简单,只考虑了我需要的音频格式

...

阅读全文

Python list 分页

想要对 list 分页的同时,还想知道当前页是否有 prev 和 next,类似如下操作:

paginator = Paginator(range(50), 12)
for page in paginator:
    page.has_prev # 是否有 prev
    page.has_next # 是否有 next
    page.index    # page 序号
    for item in page:
        item # 每个元素

不多说,上代码:

...

阅读全文

Python 控制台版 2048

现在 2048 游戏这么火,我也尝试着用 Python 做了一个(控制台版),貌似 Python 实现的代码行数都是 100 行左右。

由于采用了 cls 命令清屏 和 msvcrt 的按键检测,所以下面代码只能在 Windows 平台上运行

...

阅读全文

在 Python 多线程中使用 print

在 Python 多线程中使用 print 有时会将多行内容输出到一行,这是因为 Python 是将要输出的内容和换行符分开打印的。 要避免这个问题,方法之一就是对 print 做线程同步操作:

...

阅读全文