Python 2.7 如何使用make调用python脚本并行处理数百个文本文件?

Python 2.7 如何使用make调用python脚本并行处理数百个文本文件?,python-2.7,makefile,Python 2.7,Makefile,我在一个名为“in/”的文件夹中有数百个文本文件。我需要运行一个python脚本,该脚本一次获取一个文件,处理它并将其放入名为“out/”的文件夹中。我已经准备好了python脚本来实现这一点。 由于要处理的文本文件的数量非常大(10000个),而且所有的文件处理都是独立的,所以我想使用“make-j”来充分利用我有8个内核的CPU。我创建了一个make文件,如下所示: SCRIPT_DIR:=/home/xyz/abc/scriptFolder<br/> IN_DIR:=/home

我在一个名为“in/”的文件夹中有数百个文本文件。我需要运行一个python脚本,该脚本一次获取一个文件,处理它并将其放入名为“out/”的文件夹中。我已经准备好了python脚本来实现这一点。 由于要处理的文本文件的数量非常大(10000个),而且所有的文件处理都是独立的,所以我想使用“make-j”来充分利用我有8个内核的CPU。我创建了一个make文件,如下所示:

SCRIPT_DIR:=/home/xyz/abc/scriptFolder<br/>
IN_DIR:=/home/xyz/abc/data/in/in10000<br/>
OUT_DIR:=/home/xyz/abc/data/out/out10000<br/><br/>
chk:  
    cd $(OUT_DIR); \<br/>
    python $(SCRIPT_DIR)/process_parallel.py --inFile $(IN_DIR)/\*
SCRIPT\u DIR:=/home/xyz/abc/scriptFolder
IN_DIR:=/home/xyz/abc/data/IN/in10000
OUT_DIR:=/home/xyz/abc/data/OUT/out10000

chk: cd$(输出目录)\
python$(SCRIPT\u DIR)/process\u parallel.py--infle$(IN\u DIR)/\*

如前所述,process_parallel.py一次处理一个文件,并将其作为文本文件放到当前文件夹(OUT_DIR)中。我在这之后运行了htops并进行了检查。我只能看到一个进程在运行,我应该看到8,因为我使用-j8运行它。你能告诉我哪里错了吗?

我的第一个想法是写一个shell脚本来实现这一点。比如:

for f in in/*.txt;
do
    ./process_parallel.py $f &
done
wait
您的操作系统调度程序应该负责跨CPU内核并行处理。然后可以在Makefile中调用脚本


还有GNU并行

和make-j选项,我们可以强制创建多个执行线程,并在单独的内核上执行独立的进程。所以我正在寻找一个具体的解决方案。