gpt4 book ai didi

python - 如何为 python 脚本更新数据库编写 makefile?

转载 作者:行者123 更新时间:2023-12-03 17:54:53 24 4
gpt4 key购买 nike

我有一堆 Python 脚本,我在管道中使用它们来读取文件,并转换数据以创建和填充 sqlite3 数据库。

我使用一个 makefile 来做这个;由于我的一些输入文件相当大,即 5GB,因此需要相当长的时间来处理,我不希望 makefile 在我只编辑一个文件时重新运行整个管道。

但是,因为它们都编辑同一个文件,即数据库文件,所以它们实际上都是虚假目标。有没有办法让它只重新运行已编辑文件的目标?

这是我正在使用的生成文件:

.PHONY: all
all: blogs.db

blogs.db: create users posts likes blogs blog_likes

.PHONY: create
create: create.py
$(PYTHON) create.py

.PHONY: users
users: users.py
$(PYTHON) users.py

.PHONY: posts
posts: posts.py
$(PYTHON) posts.py

.PHONY: likes
likes: likes.py
$(PYTHON) likes.py

.PHONY: blogs
blogs: blogs.py
$(PYTHON) blogs.py

.PHONY: blog_likes
blog_likes: blog_likes.py
$(PYTHON) blog_likes.py

最佳答案

你不需要虚拟文件,只要这些脚本正在修改数据库:

SCRIPTS = create.py users.py posts.py likes.py blogs.py blog_likes.py

.PHONY: all
all: blogs.db

blogs.db: $(SCRIPTS)
@for s in $?; do $(PYTHON) $$s; done

关于python - 如何为 python 脚本更新数据库编写 makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11445122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com