美文网首页
python利用生成器读取大文件

python利用生成器读取大文件

作者: TheRightPath1 | 来源:发表于2020-03-08 17:56 被阅读0次

    def myreadlines(f, newline):
    """
    利用生成器读取数据,并将数据按照指定的分隔符返回
    :param f: 文件打开对象
    :param newline: 指定的行分隔符
    :return:
    """
    # 定义一个中间变量来存储每次读取的数据
    buff = ''
    while True:
    while newline in buff:
    # 获取分隔符在读取的数据中的位置
    pos = buff.index(newline)
    # 将分隔符之前的数据返回
    yield buff[:pos]
    # 将数据变为分隔符以后的数据
    buff = buff[pos+len(newline):]
    # read()方法可以传入一个数字表示读取的字节数,不传入数字就读取全部的数据
    current_text = f.read(4092)
    if not current_text:
    # 如果没有读取到数据表示已经读到文件结尾,将当前数据返回
    yield buff
    break
    # 将读取到的数据记录到中间变量中
    buff += current_text

    with open('专项词.txt', encoding='utf-8') as f:
    for i in myreadlines(f, ','):
    print(i)

    相关文章

      网友评论

          本文标题:python利用生成器读取大文件

          本文链接:https://www.haomeiwen.com/subject/wtkjdhtx.html