python 读写与 shutil 复制

python read write vs shutil copy

我遇到了在我的服务器上保存文件的任务(最大文件大小为 10 MB)并找到了 答案。这工作得很好,但我想知道使用 shutil 模块有什么意义,两者之间有什么区别:

file_location = f"files/{uploaded_file.filename}"
with open(file_location, "wb+") as file_object:
    file_object.write(uploaded_file.file.read())

import shutil

file_location = f"files/{uploaded_file.filename}"
with open(file_location, "wb+") as file_object:
    shutil.copyfileobj(uploaded_file.file, file_object) 

在我的编程经验中,我多次遇到 shutil 模块,但仍然找不到再导入一次的好处。

您的方法要求整个文件都在内存中。 shutil 分块复制,这样您就可以复制大于内存的文件。此外,shutil 具有按名称复制文件的例程,因此您根本不必打开它们,并且它可以保留权限、所有权和 creation/modification/access 时间戳。