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



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

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

这段代码是我的 Django 应用程序的一部分,我想加快速度。有没有其他更好的方法来加快此操作?

更新:好的,为了让事情更清楚一点,我试图做的是使用 cv2 在 OpenCV 中加载内存中的视频文件(二进制数据(。视频捕获(文件名(,我认为目前是不可能的。所以现在我必须从内存中读取文件并将其写入磁盘,以便可以执行 OpenCV 操作。基本上,我正在尝试获取视频持续时间以进行验证。

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

受了几个小时的苦后得到了它。但是如果你是一个新手程序员,我想你无法逃脱它。我试图获取请求的路径。文件在我的Django视图中,以便我可以在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

2020 年 6 月更新仅当您的文件大小超过 2.5 Mb 时,此方法才有效。对于小于 2.5Mb 的文件,您需要将其添加到 settings.py 文件中。

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

最新更新