Python 多次读取文件或读取一次并对结果使用deepcopy?

Python 多次读取文件或读取一次并对结果使用deepcopy?,python,Python,假设我在内存中有一个由HTTPPOST请求提交的文件和该文件的处理程序f。我需要将文件的内容转换为JSON对象,并在每次修改内容时多次使用它,那么下面哪两种方法更可取 在f.seek0的帮助下多次读取文件的内容,并在每次需要数据时将其转换为新的JSON对象。 读取文件内容并将其转换为JSON对象一次,每次需要数据时都使用该对象的deepcopy。 通过每次执行读取,您就是在对硬盘执行I/O操作 相比之下,通过使用deepcopy,您只能使用RAM内存 鉴于RAM内存访问比硬盘访问快得多,就速度而

假设我在内存中有一个由HTTPPOST请求提交的文件和该文件的处理程序f。我需要将文件的内容转换为JSON对象,并在每次修改内容时多次使用它,那么下面哪两种方法更可取

在f.seek0的帮助下多次读取文件的内容,并在每次需要数据时将其转换为新的JSON对象。 读取文件内容并将其转换为JSON对象一次,每次需要数据时都使用该对象的deepcopy。 通过每次执行读取,您就是在对硬盘执行I/O操作

相比之下,通过使用deepcopy,您只能使用RAM内存

鉴于RAM内存访问比硬盘访问快得多,就速度而言,我建议使用deepcopy方法而不是read方法


注意:如果您的JSON对象是不可变的,例如:一个Python字符串,您不需要每次都执行deepcopy,因为您每次对原始对象执行更改时都会得到一个新对象

您可以显示您尝试了什么吗?通常文件中的I/O效率低于内存中的对象,我会选择第二个选项,但如果您要进行大量复制,您可能会遇到内存问题,这在今天的内存中不太可能发生。我假设文件完全在内存中,因为它是通过HTTP POST请求提交的。我可能错了。你能把它转换成JSON字符串吗?这样你就有了一个不可变的对象,可以避免每次深度复制。我需要处理JSON对象中的数据,所以如果我将其存储为字符串,我想每次都需要调用JSON.loads。最后,如果你想比较所有的方法,只需在jupyter笔记本电脑上测量TimeIti等所用的时间,然后选择最快的一种。