Maison >développement back-end >Tutoriel Python >Comment utiliser les expressions régulières Python pour la programmation multi-processus
Python est un langage de programmation largement utilisé dont le module d'expression régulière peut être utilisé pour faire correspondre, rechercher et manipuler des chaînes. La programmation multi-processus est une technologie de programmation qui traite les tâches en parallèle, ce qui peut améliorer l'efficacité de l'exécution du programme. Cet article explique comment utiliser les expressions régulières Python pour la programmation multi-processus afin de traiter plus rapidement de grandes quantités de données.
Lors de l'exécution d'une programmation multi-processus, vous devez utiliser les bibliothèques multitraitement et re. le multitraitement est utilisé pour créer et gérer des processus, et re est utilisé pour appliquer des expressions régulières.
import multiprocessing import re
Avant d'utiliser des expressions régulières, vous devez disposer de certaines données à faire correspondre. Cet article utilisera une liste de chaînes qui doivent être mises en correspondance comme exemples de données.
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' ]
Avant d'effectuer une correspondance d'expression régulière, vous devez d'abord définir une expression régulière.
L'expression régulière dans cet exemple est utilisée pour faire correspondre les nombres dans une chaîne, où d+ signifie faire correspondre un ou plusieurs groupes de nombres.
pattern = re.compile(r'd+')
Lors de la programmation multi-processus, vous devez d'abord définir une fonction et transmettre les données à la fonction pour traitement. La fonction dans cet exemple prend les données du paramètre en entrée, extrait le numéro correspondant dans chaque chaîne et le renvoie comme valeur de retour.
def get_numbers(data): result = list() for string in data: numbers = pattern.findall(string) result.append(numbers) return result
Après avoir préparé les données et les fonctions, vous pouvez créer un pool de processus pour traiter les données en parallèle.
if __name__ == '__main__': # 创建进程池 pool = multiprocessing.Pool()
En utilisant la méthode map() du pool de processus, les tâches peuvent être soumises au pool de processus pour un traitement parallèle.
# 将任务提交到进程池 result = pool.map(get_numbers, [data])
Après avoir soumis la tâche, vous devez fermer le pool de processus pour libérer des ressources. Dans le même temps, les résultats du traitement doivent également être édités.
# 关闭进程池 pool.close() pool.join() # 输出结果 print(result)
Exemple de code complet :
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)
Conclusion
L'utilisation d'expressions régulières Python et de la programmation multi-processus peut considérablement améliorer l'efficacité du traitement des données. Cet article explique comment utiliser les expressions régulières Python pour la programmation multi-processus afin que vous puissiez effectuer des tâches plus rapidement lorsque vous travaillerez avec de grandes quantités de données à l'avenir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!