大文件读写

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”。

转载于:https://www.cnblogs.com/yongfuxue/p/10036731.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值