streamly是一个非常简单但功能强大的流包装器。
Streaml的Python项目详细描述
streamly是一个非常简单但功能强大的流(类似文件的对象)包装器。它主要设计用于帮助在实时读取操作期间清除平面数据。
在数字营销中特别流行的一个典型用例是,希望将web流下载/上载到某个目标位置,该位置期望干净、平分界线的数据,但流包含不需要的页眉和页脚数据。开发人员通常通过将数据按原样加载到临时位置,然后打开文件并剔除不需要的行首和行尾来处理此问题。这种方法有效,但局限性包括:不容易重现;增加解决方案的复杂性;假设存储组件;对大数据集效率低下。
streamly通过以高效的方式动态处理不需要的页眉和页脚来解决这个问题。
文档:https://streamly.readthedocs.io
安装
示例用法
下面的示例将字节流写入文件,动态删除不需要的页眉和页脚详细信息。
importioimportstreamlymy_stream=io.BytesIO(b"""Header Metadata Unwanted = Garabage Report Fields: col1,col2,col3,col4,col5 data,that,we,actually,want and,potentially,loads,of,it, foo,bar,baz,lorem,ipsum foo,bar,baz,lorem,ipsum foo,bar,baz,lorem,ipsum ...,...,...,...,... Grand Total:,0,0,1000,0 More Footer Garbage """)wrapped_stream=streamly.Streamly(my_stream,header_row_identifier=b"Report Fields:\n",footer_identifier=b"Grand")data=wrapped_stream.read(50)whiledata:print(data)data=wrapped_stream.read(50)
功能
在动态读取操作期间包括以下功能:
- 多个流的邻接
- 删除由值(例如字节字符串或字符串)标识的页眉和页脚数据
- 记录读取进度
- 保证读取大小(数据尚未用尽时)
- 返回字节字符串或字符串的流的一致api