我有一堆Python腳本在管道中用來讀取文件,並將數據轉換爲創建並填充sqlite3數據庫。如何爲python腳本編寫makefile來更新數據庫?
我使用一個makefile來做到這一點;由於我的一些輸入文件相當大,即5GB,因此需要相當長的時間來處理,所以我不希望makefile只在編輯一個文件時重新運行整個管道。
但是,因爲它們都編輯相同的文件,即數據庫文件,它們都是僞造的目標。有沒有辦法讓它重新生成已編輯文件的目標?
下面是我使用的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
您是否嘗試過讓他們產生「臨時」目標文件以表明他們已經建立(只是頭腦風暴)? – jdi 2012-07-12 04:53:46
爲了清楚起見,當*腳本本身*發生更改時,您希望重新運行腳本?或者當某些內容修改了腳本的*輸入文件*時?如果是後者,您是否事先知道每個腳本會讀取哪些文件? – Beta 2012-07-12 05:14:21
謝天謝地,輸入文件是靜態的,不會被編輯。 – mercifulhop 2012-07-12 05:27:59