現在のディレクトリ内のすべてのフォルダーに対して子プロセスを作成して、特定の機能を実行しようとするのに苦労しています(Python 2.7)。
私の考えは次のとおりです。
- 最初にos.listdir(path)ですべてのフォルダーを取得し、os.path.isdir(file_path)でファイルをフィルタリングします。
- フォルダーを数えて、必要なフォークの数を計算します。例: 5 つのフォルダーの場合、3つのフォークが必要です (2³ - 1 = 7 つの子プロセス) 。
必要な数のフォークを反復し、各反復でフォルダーのコードを一度に 2 つ実行し、すべてのフォルダー パスを含むリストからパスを取得します。
for counter in needed_forks: folder_pid = os.fork() if pid: some_function(folder_list[counter]) else: some_function(folder_list[counter+1])
主に、反復ごとに繰り返される folder_list の 1 つのインデックスが原因で、適切な出力を得ることができません。マルチプロセッシングと Python を同時に学ぼうとして、この仕事を急いでいます。
ありがとう。