Python ialah bahasa pengaturcaraan yang digunakan secara meluas, dan modul ungkapan biasanya boleh digunakan untuk memadankan, mencari dan memanipulasi rentetan. Pengaturcaraan berbilang proses ialah teknologi pengaturcaraan yang memproses tugas secara selari, yang boleh meningkatkan kecekapan berjalan program. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pengaturcaraan berbilang proses untuk memproses sejumlah besar data dengan lebih pantas.
Apabila melaksanakan pengaturcaraan berbilang proses, anda perlu menggunakan perpustakaan berbilang pemprosesan dan semula. multiprocessing digunakan untuk mencipta dan mengurus proses, dan semula digunakan untuk menggunakan ungkapan biasa.
import multiprocessing import re
Sebelum menggunakan ungkapan biasa, anda perlu mempunyai beberapa data untuk dipadankan. Artikel ini akan menggunakan senarai rentetan yang perlu dipadankan sebagai data sampel.
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' ]
Sebelum melakukan padanan ungkapan biasa, anda perlu menentukan ungkapan biasa.
Ungkapan biasa dalam contoh ini digunakan untuk memadankan nombor dalam rentetan, dengan d+ bermaksud memadankan satu atau lebih kumpulan nombor.
pattern = re.compile(r'd+')
Apabila melakukan pengaturcaraan berbilang proses, anda perlu terlebih dahulu mentakrifkan fungsi dan menghantar data kepada fungsi untuk diproses. Fungsi dalam contoh ini mengambil data parameter sebagai input, mengekstrak nombor yang sepadan dalam setiap rentetan dan mengembalikannya sebagai nilai pulangan.
def get_numbers(data): result = list() for string in data: numbers = pattern.findall(string) result.append(numbers) return result
Selepas menyediakan data dan fungsi, anda boleh mencipta kumpulan proses untuk memproses data secara selari.
if __name__ == '__main__': # 创建进程池 pool = multiprocessing.Pool()
Menggunakan kaedah map() kumpulan proses, anda boleh menyerahkan tugasan kepada kumpulan proses untuk pemprosesan selari.
# 将任务提交到进程池 result = pool.map(get_numbers, [data])
Selepas menyerahkan tugas, anda perlu menutup kumpulan proses untuk melepaskan sumber. Pada masa yang sama, hasil pemprosesan juga perlu dikeluarkan.
# 关闭进程池 pool.close() pool.join() # 输出结果 print(result)
Contoh kod penuh:
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)
Kesimpulan
Menggunakan ungkapan biasa Python dan pengaturcaraan berbilang proses boleh meningkatkan kecekapan pemprosesan data. Artikel ini menerangkan cara menggunakan ungkapan biasa Python untuk pengaturcaraan berbilang proses supaya anda boleh menyelesaikan tugas dengan lebih cepat apabila bekerja dengan jumlah data yang besar pada masa hadapan.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk pengaturcaraan pelbagai proses. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!