如何在python中加快读写二进制文件操作?

How to speed up reading and writing binary file operation in python?

我有一个二进制文件 (400MB),我想首先读取它然后写入另一个文件 python.Currently 我正在做的是非常基础的。

file = 'file.bin'
with open('temp','wb+') as dest:
    for chunk in file.chunks():
        dest.write(chunk)

这段代码是我想要加速的 Django 应用程序的一部分up.Is有没有其他更好的方法来加速这个操作?

更新: 好吧,为了让事情更清楚一点,我想做的是使用 cv2.VideoCapture(filename) 在 OpenCV 中加载一个内存中的视频文件(二进制数据),我认为从 [=24 开始这是不可能的=] 现在我必须从内存中读取文件并将其写入磁盘,以便 OpenCV 操作可以 performed.Basically 我正在尝试获取视频持续时间以进行验证。

    import cv2
    cap = cv2.VideoCapture(dest.name)
    fps = cap.get(cv2.CAP_PROP_FPS)  
    frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
    duration = frame_count/fps

经过 hours.But 的折磨后明白了,如果你是新手程序员,我想你无法逃避它。我试图在我的 Django 视图中获取 request.FILES 的路径,以便我可以在 OpenCV VideoCapture 中使用它。所以我就是这样做的。

file = request.FILES['filename'].file   
cap = cv2.VideoCapture(file.name)
fps = cap.get(cv2.CAP_PROP_FPS) 
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
duration = frame_count/fps

更新 June/2020 此方法仅在您的文件大小大于 2.5 Mb.For 文件小于 2.5Mb 时才有效 您需要将此添加到你的 settings.py 文件。

FILE_UPLOAD_HANDLERS = [
    'django.core.files.uploadhandler.TemporaryFileUploadHandler',
]