10

こんにちは、フォルダーから画像を1つずつ開き、画像を処理して他のフォルダーに保存する必要があります。次のサンプルコードを使用してこれを行っています。

path1 = path of folder of images    
path2 = path of folder to save images    

listing = os.listdir(path1)    
for file in listing:
    im = Image.open(path1 + file)    
    im.resize((50,50))                % need to do some more processing here             
    im.save(path2 + file, "JPEG")

これを行う最善の方法はありますか?

ありがとう!

4

2 に答える 2

13

マルチスレッドが必要なようです。これを行う簡単なリビジョンを次に示します。

from multiprocessing import Pool
import os

path1 = "some/path"
path2 = "some/other/path"

listing = os.listdir(path1)    

p = Pool(5) # process 5 images simultaneously

def process_fpath(path):
    im = Image.open(path1 + path)    
    im.resize((50,50))                # need to do some more processing here             
    im.save(os.path.join(path2,path), "JPEG")

p.map(process_fpath, listing)

(編集:の代わりにmultiprocessingThreadを使用してください。より多くの例と情報についてはそのドキュメントを参照してください)

于 2013-10-24T20:04:09.747 に答える