ホームページ  >  記事  >  バックエンド開発  >  マルチプロセス プログラミングに Python 正規表現を使用する方法

マルチプロセス プログラミングに Python 正規表現を使用する方法

PHPz
PHPzオリジナル
2023-06-22 13:58:40843ブラウズ

Python は広く使用されているプログラミング言語であり、その正規表現モジュールを使用して文字列の照合、検索、操作を行うことができます。マルチプロセスプログラミングは、タスクを並列処理することでプログラムの実行効率を向上させるプログラミング技術です。この記事では、マルチプロセス プログラミングで Python 正規表現を使用し、大量のデータをより高速に処理する方法を紹介します。

  1. 必要なライブラリをインポートする

マルチプロセス プログラミングを実行する場合は、multiprocessing ライブラリと re ライブラリを使用する必要があります。 multiprocessing はプロセスの作成と管理に使用され、re は正規表現の適用に使用されます。

import multiprocessing
import re
  1. データの準備

正規表現を使用する前に、照合するデータが必要です。この記事では、一致する必要がある文字列のリストをサンプル データとして使用します。

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'
]
  1. 正規表現の定義

正規表現によるマッチングを実行する前に、正規表現を定義する必要があります。

この例の正規表現は、文字列内の数値を照合するために使用されます。ここで、d は 1 つ以上の数値グループと照合することを意味します。

pattern = re.compile(r'd+')
  1. 処理関数の定義

マルチプロセス プログラミングを行う場合は、まず関数を定義し、処理のためにデータを関数に渡す必要があります。この例の関数は、パラメーター データを入力として受け取り、各文字列内で一致する数値を抽出し、それを戻り値として返します。

def get_numbers(data):
    result = list()
    for string in data:
        numbers = pattern.findall(string)
        result.append(numbers)
    return result
  1. プロセス プールの作成

データと関数を準備した後、データを並列処理するためのプロセス プールを作成できます。

if __name__ == '__main__':
    # 创建进程池
    pool = multiprocessing.Pool()
  1. プロセス プールへのタスクのサブミット

プロセス プールの map() メソッドを使用して、タスクをプロセス プールにサブミットして並列処理できます。

    # 将任务提交到进程池
    result = pool.map(get_numbers, [data])
  1. プロセス プールを閉じて結果を出力する

タスクを送信した後、プロセス プールを閉じてリソースを解放する必要があります。同時に処理結果も出力する必要があります。

    # 关闭进程池
    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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。