首页 > 编程语言 > 详细

python 大文件读写

时间:2021-01-12 16:46:37      阅读:30      评论:0      收藏:0      [点我收藏+]
  1. 使用

import smbclient  # pip install smbprotocol
import zlib
import re
import os

smbclient.register_session("10.x.x.x", username="123", password="123")
img_path = smbclient.listdir(r"\\10.x.x.x\img")
file_name = os.path.basename(img_path )

#方法1
# res = path.rsplit(‘.‘,1)[0].split(‘_‘)[1]
#方法2
res = re.search(r‘(0x\w+)\.tar‘,path)

file_checksum = res.group(1)


def read_in_chunks(filePath, chunk_size=1024*1024):
    """
    Lazy function (generator) to read a file piece by piece.
    Default chunk size: 1M
    You can set your own chunk size
    """
    # file_object = open(filePath)
    file_object = smbclient.open_file(filePath,mode=‘rb‘)
    while True:
        chunk_data = file_object.read(chunk_size)
        if not chunk_data:
            break
        yield chunk_data


def verify_file_checksum(file, checksum):
    with open (file,‘rb‘) as f:
        if zlib.adler32(f.read())==int(checksum,16):
            print (‘checksum verification pass‘)
            return True
    print (‘checksum verification fail‘)
    return False

if __name__ == "__main__":
    os.remove(‘1.img‘)
    for chunk in read_in_chunks(path):
        with open(‘1.img‘,mode=‘ab‘) as fw:
            fw.write(chunk)

    verify_file_checksum(‘1.img‘,file_checksum)

  1. 模板
def read_in_chunks(filePath, chunk_size=1024*1024):
    """
    Lazy function (generator) to read a file piece by piece.
    Default chunk size: 1M
    You can set your own chunk size
    """
    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 = ‘filename‘
    for chunk in read_in_chunks(filePath):
        process(chunk) # <do something with chunk>

python 大文件读写

原文:https://www.cnblogs.com/amize/p/14266472.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!