小编Eck*_*cko的帖子

测试函数或方法是正常还是异步

如何确定函数或方法是正常函数还是异步函数?我希望我的代码能够自动支持普通或异步回调,并且需要一种方法来测试传递的函数类型.

async def exampleAsyncCb():
    pass

def exampleNomralCb():
    pass

def isAsync(someFunc):
    #do cool dynamic python stuff on the function
    return True/False

async def callCallback(cb, arg):
    if isAsync(cb):
        await cb(arg)
    else:
        cb(arg)
Run Code Online (Sandbox Code Playgroud)

根据传递的函数类型,它应该正常运行或使用await运行.我尝试了各种各样的东西,但不知道如何实现isAsync().

python asynchronous coroutine python-3.x python-3.5

30
推荐指数
4
解决办法
8468
查看次数

从 HLS 流解析 timed_id3 值

如何解析从 HLS 流块获取的 timed_id3 值?

Twitch 流块包含 ffprobe 标识为 timed_id3 的第三个数据流中的编码时间等信息,提取的数据为:

b'\x00\x00\x00\x020TRCK\x00\x00\x00\x06\x00\x00\x033936\x00TDEN\x00\x00\x00\x15\x00\x00\x032016-09-30T02:01:11\x00TDTG\x00\x00\x00\x15\x00\x00\x032016-09-30T02:01:18\x00TOFN\x00\x00\x00\x1a\x00\x00\x03index-0000003936-tI2q.ts\x00TSSE\x00\x00\x00\x15\x00\x00\x03libavtwitch: 730c86\x00TXXX\x00\x00\x01\x15\x00\x00\x03segmentmetadata\x00{"broadc_s":1,"cmd":"ld_lat_data","ingest_r":2,"ingest_s":3,"stream_offset":15624,"transc_r":1475200871542,"transc_s":1475200878899}\xbd\x00\x00\x00\x01\xce\x8cM\x9d\x10\x8e%\xe9\xfe'
Run Code Online (Sandbox Code Playgroud)

它是可解析的,包含常见的 ID3 值,但似乎不是完整的 ID3 数据。根据 ID3 规范,它应该以“ID3”标识符值和其他值开头,但事实并非如此,并且我尝试的所有 id3 解析库都因此无法解析它。

HLS 流中的 timed_id3 似乎与 mp3 文件的正常 id3 信息不同。

python id3 ffmpeg mpeg2-ts id3v2

5
推荐指数
0
解决办法
3256
查看次数

Python Imaplib:无需重新连接即可获取新的Gmail邮件

我正在编写一个python脚本,该脚本会定期检查与特定搜索匹配的新电子邮件。但是,如果不重新连接,它永远不会显示新电子邮件。

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(user,passwd)
mail.select("inbox")
while True:
    result, idData = mail.uid('search', query, "ALL")
    processIDs(idData)
    time.sleep(60)
Run Code Online (Sandbox Code Playgroud)

该搜索将在登录时查找与我的查询匹配的所有电子邮件,但从不查找运行时到达的电子邮件。一旦我停止脚本并重新启动它,所有电子邮件立即显示出来。

如果用谷歌搜索并浏览了imaplib文档,但找不到任何有用的信息。

如何在不重新连接到imap服务器的情况下显示新电子邮件?

编辑:我想避免重新连接的原因是由于gmail速率限制。

python email gmail imap gmail-imap

2
推荐指数
1
解决办法
4376
查看次数