我刚刚开始使用python,但在过去的几个月里学到了很多东西,现在我已经碰到了关于以高速度更新模型上的对象的问题。
我有一个名为Products的模型,这是从csv文件填充的,每天这个文件都会更新,如成本和数量,我可以将文件的每一行与产品模型进行比较,但这需要120k行3-4hours。
我可以采取什么程序来更快地完成此过程。我只想在成本和数量发生变化时修改对象
有什么建议我如何解决这个问题?
我尝试过的Ver3。
import os
root = os.getcwd()
for file in os.listdir('.'):
if not os.path.isfile(file):
continue
head, tail = os.path.splitext(file)
if not tail:
src = os.path.join(root, file)
dst = os.path.join(root, file + '.txt')
if not os.path.exists(dst): # check if the file doesn't exist
os.rename(src, dst)
答案 0 :(得分:0)
我曾经遇到过数据加载缓慢的问题,我可以告诉你我做了什么也许它可以帮助你以某种方式,我将执行传递给调试模式并试图找出colomn导致缓慢加载,以及每当我看到colomn导致问题时,我就会在其上添加索引(在我的案例中,在SGBD - > postgreSQL中),并且它有效。我希望你面临同样的问题,所以我的回答可以帮助你。
答案 1 :(得分:0)
这是一个粗略的想法: 1,在读取csv时,请将@BearBrow建议的pandas用于array_csv 2,将obj数据从Django转换为Numpy Arrary array_obj 3,不要使用numpy减法逐一比较它们
compare_index = (array_csv[['cost',['quantity']]] - array[['cost',['quantity']]] == 0)
4,找到更新的列 obj_need_updated = array_obj [np.logic_any(compare_index [' cost'],比较['数量'])]
然后使用Django批量更新https://github.com/aykut/django-bulk-update批量更新
希望这会为您提供加速代码的提示