Python は広く使用されているプログラミング言語であり、その正規表現モジュールを使用して文字列の照合、検索、操作を行うことができます。マルチプロセスプログラミングは、タスクを並列処理することでプログラムの実行効率を向上させるプログラミング技術です。この記事では、マルチプロセス プログラミングで Python 正規表現を使用し、大量のデータをより高速に処理する方法を紹介します。
マルチプロセス プログラミングを実行する場合は、multiprocessing ライブラリと re ライブラリを使用する必要があります。 multiprocessing はプロセスの作成と管理に使用され、re は正規表現の適用に使用されます。
import multiprocessing import re
正規表現を使用する前に、照合するデータが必要です。この記事では、一致する必要がある文字列のリストをサンプル データとして使用します。
data = [ 'xyz_123_mn1_na1234_qwe_rty', 'pqr_234_mn2_na2345_asd_fgh', 'hjk_345_mn3_na3456_zxc_vbn', 'lmn_456_mn4_na4567_qaz_wsx', 'hgo_567_mn5_na5678_edc_rfv' ]
正規表現によるマッチングを実行する前に、正規表現を定義する必要があります。
この例の正規表現は、文字列内の数値を照合するために使用されます。ここで、d は 1 つ以上の数値グループと照合することを意味します。
pattern = re.compile(r'd+')
マルチプロセス プログラミングを行う場合は、まず関数を定義し、処理のためにデータを関数に渡す必要があります。この例の関数は、パラメーター データを入力として受け取り、各文字列内で一致する数値を抽出し、それを戻り値として返します。
def get_numbers(data): result = list() for string in data: numbers = pattern.findall(string) result.append(numbers) return result
データと関数を準備した後、データを並列処理するためのプロセス プールを作成できます。
if __name__ == '__main__': # 创建进程池 pool = multiprocessing.Pool()
プロセス プールの map() メソッドを使用して、タスクをプロセス プールにサブミットして並列処理できます。
# 将任务提交到进程池 result = pool.map(get_numbers, [data])
タスクを送信した後、プロセス プールを閉じてリソースを解放する必要があります。同時に処理結果も出力する必要があります。
# 关闭进程池 pool.close() pool.join() # 输出结果 print(result)
完全なコード例:
import multiprocessing import re data = [ 'xyz_123_mn1_na1234_qwe_rty', 'pqr_234_mn2_na2345_asd_fgh', 'hjk_345_mn3_na3456_zxc_vbn', 'lmn_456_mn4_na4567_qaz_wsx', 'hgo_567_mn5_na5678_edc_rfv' ] pattern = re.compile(r'd+') def get_numbers(data): result = list() for string in data: numbers = pattern.findall(string) result.append(numbers) return result if __name__ == '__main__': # 创建进程池 pool = multiprocessing.Pool() # 将任务提交到进程池 result = pool.map(get_numbers, [data]) # 关闭进程池 pool.close() pool.join() # 输出结果 print(result)
結論
Python 正規表現とマルチプロセス プログラミングを使用すると、データ処理の効率を大幅に向上させることができます。この記事では、将来大量のデータを扱うときにタスクをより速く完了できるように、マルチプロセス プログラミングに Python 正規表現を使用する方法について説明します。
以上がマルチプロセス プログラミングに Python 正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。