逐块迭代更容易
pybite的Python项目详细描述
侏儒虫
逐块迭代使操作更简单
安装
pip install pybite
方法
迭代
返回iterable的块迭代器
参数
iterable:iter
任何iter数据,如list、tuple、dict、iter等。
块大小:int
每个块的大小
map:callable可选,默认值none
分块前转换数据的映射函数
返回
iter
块数据的新Iterable
示例
>>>iterate_by([1,2,3,4,5],2)iter([[1,2],[3,4],[5])>>>iterate_by([1,2,3,4,5],2,map=lambdax:x*2)iter([[2,4],[6,8],[10])
按行拆分文件
将一个文件拆分为多个文件并将它们存储在输出路径中
该文件被分为b行成块文件,以后可以单独读取 或者加入到后面。
参数
文件流:str,io.stringio
要拆分的文件的文件路径或io.stringio实例。
输出路径:str
存储块的目录的路径。
行:int
每个块文件上的行数。 如果包含标题,则总计将为行+1。
编码:str可选,默认值None
输入文件编码。 块将使用相同的编码保存。
persist\u头:bool可选,默认值false
是否在每个块上持久化头。 如果persist_header为True而header为None, 第一行将被读取为实际标题。
头:str可选,默认值None
要在每个文件开头写入的头。 如果persist_header为True而header为None, 第一行将被读取为实际标题。
块名格式:str可选,默认值“04d”
输出文件名中块号的格式字符串。
返回
列表
写入文件的路径列表。
示例
withopen("test.txt","w",encoding="utf-8")asf:f.write("Symbols\nAyp\nBx\nCC\nDt")>>>split_by_lines("test.txt","out",2,encoding="utf-8")["out/test.chunk0000.txt","out/test.chunk0001.txt","out/test.chunk0002.txt"]>>>split_by_lines("test.txt","out",2,encoding="utf-8",persist_header=True)["out/test.chunk0000.txt","out/test.chunk0001.txt"]
连接文件块
将块文件连接到单行流中。
将按行拆分创建的文件合并为 str行并按名称顺序读取。 如果忽略缺少的块不是false,则未找到的块将引发错误。
避免将不同的文件块保存到同一目录中
参数
文件路径:str
包含块文件的目录的路径或文件的路径列表。
编码:str可选,默认值None
输入文件编码。 块将使用相同的编码保存。
持久化的头:bool可选,默认值false
是否在每个块上持久化了头。 如果persisted_header为true而header为none, 第一个文件的第一行将作为实际头文件读取。
头:str可选,默认值None
要在第一个文件开始时读取的头。 如果persisted_header为true而header为none, 第一个文件的第一行将作为实际头文件读取。
忽略缺少的块:bool可选,默认值“false
忽略丢失块的标志
返回
iter
文件行的一个iterable(按顺序读取)。
测试
测试由PyTest处理,并包含在文件夹test
中。
要运行测试,请执行以下命令:
pytest