• 大文件读写


    1)  文件读取方式

    read()将文本文件所有行读到一个字符串中。

    readline()是一行一行的读

    readlines()是将文本文件中所有行读到一个list中,文本文件每一行是list的一个元素。优点:readline()可以在读行过程中跳过特定行。

    2)大文件读取方式1:分块读取

    将大文件分割成若干小文件处理,处理完每个小文件后释放该部分内存。这里用了iter 和 yield

    def read_in_chunks(filePath, chunk_size=1024*1024):

        file_object = open(filePath)

        while True:

            chunk_data = file_object.read(chunk_size)

            if not chunk_data:

                break

            yield chunk_data

           

    if __name__ == "__main__":

        filePath = './path/filename'

        for chunk in read_in_chunks(filePath):

            process(chunk)  # <do something with chunk>

    3)大文件读取方式2:for line in f

    l  with语句打开和关闭文件,包括抛出一个内部块异常。

    l  for line in f文件对象f视为一个迭代器,会自动的采用缓冲IO和内存管理,所以你不必担心大文件。

    with open(...) as f:

      for line in f:

        process(line)  # <do something with line>

    4)二进制文件读写

    对于文本数据,可以直接以“r”形式读写,但对于图片,音乐等等,这些东西都是有规则的二进制文件,读取方式是“rb”。

  • 相关阅读:
    在手机浏览器中判断App是否已安装
    用git无法连接github的解决方法
    使用pdf.js显示pdf文件
    Javascript绝句欣赏
    HTTP Keep-Alive模式
    和浏览器并发请求数有关的一些前端技术
    Javascript标准参考教程学习记录
    [nodejs]国内npm安装nodejs modules失败的几个解决方案
    利用sfntly的sfnttool.jar提取中文字体
    Bzoj4378--Poi2015Logistyka
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10036731.html
Copyright © 2020-2023  润新知