Chuỗi tìm kiếm python trong tệp

Điều này có thể tăng tốc đáng kể chương trình của bạn so với việc tìm kiếm các tệp văn bản một cách tuần tự, từng cái một

Trong hướng dẫn này, bạn sẽ khám phá cách tìm kiếm đồng thời các tệp văn bản bằng cách sử dụng nhóm quy trình worker

Hãy đi sâu vào

Mục lục

Cách tìm kiếm từng tệp văn bản một [từ từ]

Tìm kiếm các tệp văn bản ASCII là một tác vụ phổ biến mà chúng tôi có thể thực hiện

Hầu hết các hệ điều hành hiện đại đều cung cấp một số giao diện để tìm kiếm nội dung của các tệp trong một thư mục, nhưng nó thường rất chậm

Chúng tôi có thể muốn viết một chương trình để tìm kiếm nội dung của một thư mục tệp văn bản để kiểm soát nhiều hơn quy trình, chẳng hạn như đối với chính tìm kiếm hoặc cách sử dụng kết quả

Hãy khám phá dự án này để làm cơ sở cho cách sử dụng lớp ProcessPoolExecutor một cách hiệu quả để thực thi các tác vụ đồng thời

Thư mục tệp văn bản

Đầu tiên, chúng ta cần một thư mục chứa các tệp văn bản

Với mục đích của hướng dẫn này, tôi khuyên bạn nên tải xuống 100 cuốn sách miễn phí hàng đầu từ Project Gutenberg

  • Sách điện tử miễn phí hàng đầu về Project Gutenberg

Dưới đây là một. zip chứa hầu hết các cuốn sách hàng đầu từ trang web tại thời điểm viết

  • Top 100 cuốn sách được xem nhiều nhất [top ebooks project gutenberg. nén]

Tạo một thư mục mới có tên ‘txt/‘ trong thư mục làm việc hiện tại của bạn, e. g. nơi bạn sẽ tạo tập lệnh python

Giải nén nội dung của. zip vào thư mục mới này, bạn nên đặt một tệp cho mỗi cuốn sách như sau

1

2

3

4

5

6

10-0. txt

11-0. txt

16-0. txt

23-0. txt

35-0. txt

...

Tiếp theo, chúng tôi có thể phát triển một số mã để tải và tìm kiếm trong từng tệp sách để tìm từ truy vấn hoặc mã thông báo

Tải một tệp văn bản

Trước tiên, hãy mở và tải một tệp đã cho

Chúng ta có thể đạt được điều này bằng cách sử dụng hàm open[] tích hợp sẵn và chỉ định đường dẫn của tệp và mã hóa, chẳng hạn như UTF-8

Chúng tôi thường mở tệp bằng trình quản lý ngữ cảnh để đảm bảo tệp được đóng đúng cách sau khi chúng tôi rời khỏi khối

Sau khi mở, chúng ta có thể đọc nội dung và trả về dưới dạng chuỗi thông qua hàm read[]

Hàm load_txt_file[] bên dưới thực hiện điều này, lấy đường dẫn tệp và trả về nội dung của tệp dưới dạng chuỗi

1

2

3

4

# tải tài liệu

def load_txt_file[đường dẫn tệp]:

    với mở[đường dẫn tệp, encoding='utf-8'] as file:

        trả lại tệp. đọc[]

Tìm kiếm một tệp văn bản

Tiếp theo, chúng ta có thể tìm kiếm nội dung của tệp văn bản

Một cách tiếp cận là chia tệp thành các dòng, sau đó tìm kiếm từng dòng. Điều này có thể đạt được thông qua hàm splitlines[] cho chuỗi

1

2

3

.. .

# chia nội dung thành các dòng

dòng = nội dung. đường phân chia[]

Sau đó, chúng tôi chỉ có thể trả về những dòng có chứa truy vấn đã cho

Đây là chức năng mà chúng tôi có thể tùy chỉnh cách chúng tôi tìm kiếm nội dung của các tệp, e. g. sử dụng regex hoặc tương tự

Để làm cho mọi thứ trở nên đơn giản, chúng ta cũng có thể làm cho trường hợp tìm kiếm không nhạy cảm bằng cách đặt cả truy vấn và dòng văn bản thành chữ thường khi kiểm tra kết quả khớp

1

2

3

4

.. .

# tìm tất cả các dòng chứa truy vấn

lower_query = truy vấn. thấp hơn[]

khớp = [dòng cho line in lines if lower_query in line.thấp hơn[]]

Liên kết điều này lại với nhau, hàm search_file_contents[] bên dưới lấy nội dung của tệp và truy vấn rồi trả về danh sách tất cả các dòng chứa kết quả khớp

1

2

3

4

5

6

7

# trả về tất cả các dòng trong nội dung chứa truy vấn

def search_file_contents[nội dung, query]:

    # chia nội dung thành các dòng

    dòng = nội dung. đường phân chia[]

    # tìm tất cả các dòng có chứa truy vấn

    lower_query = truy vấn. thấp hơn[]

    return [line for line in lines if lower_query in line.thấp hơn[]]

Chức năng nhiệm vụ

Sau đó, chúng ta có thể định nghĩa một hàm nhiệm vụ thực hiện thao tác tìm kiếm một tệp

Nghĩa là, được cung cấp một đường dẫn tệp và truy vấn, hãy tải tệp và thực hiện tìm kiếm và trả về tất cả kết quả phù hợp

Hàm search_txt_file[] bên dưới thực hiện điều này

1

2

3

4

5

6

# mở tệp văn bản và trả về tất cả các dòng chứa truy vấn

def search_txt_file[filepath, query]:

    # mở tệp

    nội dung = load_txt_file[filepath]

    # tìm kiếm nội dung

    return search_file_contents[nội dung, query]

Tìm kiếm tất cả các tệp trong một thư mục

Tiếp theo, chúng ta có thể tìm kiếm từng tệp văn bản trong một thư mục

Đầu tiên, chúng ta có thể lặp lại tất cả các tệp trong một thư mục bằng lệnh os. listdir[] lấy đường dẫn đến thư mục và trả về từng tên tệp trong thư mục

1

2

3

4

.. .

# tìm kiếm từng tệp trong thư mục

for tên tệp in listdir[dirpath]:

#

Đối với mỗi tên tệp, sau đó chúng ta có thể tạo đường dẫn đến tệp bằng lệnh os. con đường. hàm join[] để nối đường dẫn thư mục với tên tệp

1

2

3

.. .

# xây dựng một con đường

filepath = tham gia[dirpath, filename]

Sau đó, chúng ta có thể gọi hàm search_txt_file[] với đường dẫn tệp và truy vấn để nhận tất cả các dòng phù hợp

1

2

3

.. .

# lấy tất cả kết quả truy vấn trong tệp

kết quả = search_txt_file[filepath, query]

Nếu chúng tôi có kết quả, chúng tôi có thể báo cáo chúng với một số thụt lề để làm cho mọi thứ có thể đọc được

1

2

3

4

5

6

.. .

# báo cáo kết quả

if len[kết quả] > 0:

    in[f'>{len[results]

    cho dòng trong kết quả:

        in[f'\t{line}]

Liên kết điều này lại với nhau, hàm search_txt_files[] bên dưới nhận đường dẫn thư mục và truy vấn, đồng thời tìm kiếm tất cả các tệp văn bản trong thư mục và báo cáo tất cả các dòng trong mỗi tệp khớp với truy vấn

1

2

3

4

5

6

7

8

9

10

11

12

13

# tìm kiếm tất cả các tệp txt trong một thư mục

def search_txt_files[dirpath, query]:

    # tìm kiếm từng tệp trong thư mục

    cho tên tệp trong listdir[dirpath]:

        # tạo đường dẫn

        filepath = tham gia[dirpath, filename]

        # lấy tất cả kết quả của truy vấn trong tệp

        kết quả = search_txt_file[filepath, query]

        # báo cáo kết quả

        nếu len[kết quả] > 0:

            print[f'>{len[results]

            cho dòng trong kết quả:

                        in[f'\t{line}]

Ví dụ đầy đủ về tìm kiếm tệp văn bản

Chúng ta có thể liên kết tất cả những điều này lại với nhau thành một ví dụ hoàn chỉnh

Chúng ta cần chỉ định đường dẫn thư mục và truy vấn, sau đó gọi hàm search_txt_files[]

Điều này có thể được thực hiện trong điểm vào, ví dụ

1

2

3

4

5

6

7

8

# điểm vào

if __name__ == '__main__'.

    # vị trí của tệp txt

    ĐƯỜNG ĐI = 'txt'

   # văn bản cần tìm

    CÂU HỎI = 'jason'

    # tìm kiếm truy vấn trong tất cả các tệp văn bản

    search_txt_files[DIRPATH, QUERY]

Dưới đây là ví dụ đầy đủ về các tệp văn bản searing

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

#Trăn Siêu Nhanh. com

# tìm kiếm tất cả các tệp văn bản trong một thư mục cho một truy vấn

từ os nhập listdir

từ os. đường dẫn nhập tham gia

 

# tải tài liệu

def load_txt_file[đường dẫn tệp]:

    với mở[đường dẫn tệp, encoding='utf-8'] as file:

        trả lại tệp. đọc[]

 

# trả về tất cả các dòng trong nội dung chứa truy vấn

def search_file_contents[nội dung, query]:

    # chia nội dung thành các dòng

    dòng = nội dung. đường phân chia[]

    # tìm tất cả các dòng có chứa truy vấn

    lower_query = truy vấn. thấp hơn[]

    return [line for line in lines if lower_query in line.thấp hơn[]]

 

# mở tệp văn bản và trả về tất cả các dòng chứa truy vấn

def search_txt_file[filepath, query]:

    # mở tệp

    nội dung = load_txt_file[filepath]

    # tìm kiếm nội dung

    return search_file_contents[nội dung, query]

 

# tìm kiếm tất cả các tệp txt trong một thư mục

def search_txt_files[dirpath, query]:

    # tìm kiếm từng tệp trong thư mục

    cho tên tệp trong listdir[dirpath]:

        # tạo đường dẫn

        filepath = tham gia[dirpath, filename]

        # lấy tất cả kết quả của truy vấn trong tệp

        kết quả = search_txt_file[filepath, query]

        # báo cáo kết quả

        nếu len[kết quả] > 0:

            print[f'>{len[results]

            cho dòng trong kết quả:

                        in[f'\t{line}]

 

# điểm vào

if __name__ == '__main__'.

    # vị trí của tệp txt

    ĐƯỜNG ĐI = 'txt'

   # văn bản cần tìm

    CÂU HỎI = 'jason'

    # tìm kiếm truy vấn trong tất cả các tệp văn bản

    search_txt_files[DIRPATH, QUERY]

Chạy ví dụ tìm kiếm hơn 80 tệp văn bản trong thư mục cho truy vấn “jason” [vui lòng thay đổi truy vấn thành bất kỳ thứ gì bạn thích]

Trong trường hợp này, chúng ta có thể thấy 7 tệp chứa các dòng có truy vấn

Ví dụ chạy tương đối nhanh, hoàn thành trong khoảng 800 mili giây trên hệ thống của tôi

Chúng ta có thể tưởng tượng rằng nó sẽ chậm hơn đáng kể nếu chúng ta có hàng nghìn hoặc hàng triệu tệp văn bản để tìm kiếm

Sẽ thú vị hơn nếu chúng tôi báo cáo tên sách [trên dòng đầu tiên của tệp] cùng với tên tệp trong kết quả

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

>5 kết quả được tìm thấy trong 10-0. txt

làm náo động cả thành phố, và tấn công nhà của Jason, và

17. 6 Và khi họ không tìm thấy họ, họ đã kéo Jason và một số

thế giới lộn ngược cũng đến đây; . 7 Người mà Jason có

17. 9 Và khi họ đã bảo vệ được Jason và những người kia, họ

16. 21 Timotheus đồng nghiệp của tôi, và Lucius, và Jason, và Sosipater,

>1 kết quả được tìm thấy trong 3600-0. txt

Đôi khi cô đóng vai bác sĩ. Jason of Pheres được cho qua

>1 kết quả được tìm thấy trong 408-0. txt

sau đó Jason và các Argonauts của anh ấy mơ hồ lang thang vào

>2 kết quả được tìm thấy trong 3207-0. txt

đường phố. Luke] Jason và một số Anh em đến những Người cai trị Thành phố,

Ngoài ra, người mà Jason đã nhận được. Và tất cả những điều này đều trái với Nghị định

>1 kết quả được tìm thấy trong 996-0. txt

Chiến lợi phẩm phong phú hơn của Jason;

>3 kết quả được tìm thấy trong 6130-0. txt

và Jason ở Apollonius, và một số người khác theo cách tương tự

Gửi Jason, người chăn cừu của người dân của mình, khoan,]

Con trai của Jason đã đưa ra mức giá như thế nào;

>1 kết quả được tìm thấy trong 1727-0. txt

đến Jason

Tiếp theo, hãy xem cách chúng ta có thể điều chỉnh chương trình của mình để tìm kiếm tệp văn bản đồng thời với ProcessPoolExecutor

Chạy các vòng lặp của bạn bằng cách sử dụng tất cả các CPU, tải xuống cuốn sách MIỄN PHÍ của tôi để tìm hiểu cách thực hiện

Tìm kiếm đồng thời nhiều tệp văn bản

Chương trình tìm kiếm tệp văn bản có thể được điều chỉnh để sử dụng ProcessPoolExecutor chỉ với một vài thay đổi

search_txt_file[] có thể là chức năng nhiệm vụ của chúng tôi và chúng tôi sẽ gửi một chức năng cho mỗi tệp trong thư mục. Điều này sẽ tải nội dung của tệp từ đĩa và tìm kiếm nội dung trong một quy trình python riêng biệt, sau đó trả về kết quả khớp

Một cách tiếp cận là sử dụng hàm submit[] để gửi các tác vụ đến nhóm quy trình. Điều này sẽ cung cấp một đối tượng Tương lai cho mỗi tác vụ. Sau đó, chúng tôi có thể sử dụng as_completed[] để báo cáo kết quả khi các tác vụ được hoàn thành, giúp chương trình phản hồi nhanh

Để thực hiện phương pháp này, chúng tôi sẽ phải thực hiện một số thay đổi đối với chức năng tác vụ mục tiêu search_txt_file[]

Trước tiên, chúng ta sẽ cần xây dựng đường dẫn tệp trong hàm, nghĩa là tên tệp và đường dẫn thư mục sẽ cần được cung cấp làm đối số

Thứ hai, chúng tôi có thể trả về cả hai kết quả phù hợp được tìm thấy trong nội dung của tệp và tên tệp, cả hai chi tiết sẽ cần thiết để báo cáo. Chúng ta có thể tránh thay đổi này nếu search_txt_files[] gửi các tác vụ liên kết tên tệp với từng đối tượng Tương lai, e. g. qua từ điển

Phiên bản cập nhật của search_txt_file[] với những thay đổi này được liệt kê bên dưới

1

2

3

4

5

6

7

8

9

# mở tệp văn bản và trả về tất cả các dòng chứa truy vấn

def search_txt_file[tên tệp, dirpath, query]:

    # tạo đường dẫn

    filepath = tham gia[dirpath, filename]

    # mở tệp

    nội dung = load_txt_file[filepath]

    # tìm kiếm nội dung

    khớp = search_file_contents[content, query]

    return [tên tệp, matches]

Tiếp theo, chúng ta cần gửi các lệnh gọi tới hàm search_txt_file[] đã cập nhật này tới nhóm quy trình để thực thi không đồng bộ

Chúng ta có thể tạo nhóm quy trình với số lượng quy trình mặc định, e. g. khớp với số lượng lõi CPU logic mà Python có thể phát hiện trong hệ thống của bạn

1

2

3

4

.. .

# tạo nhóm quy trình

với ProcessPoolExecutor[] như exe:

#

Tiếp theo, chúng tôi có thể gửi một cuộc gọi tới search_txt_file[] cho mỗi tên tệp được trả về từ os. listdir[dirpath] và thu thập các đối tượng Tương lai vào một danh sách

1

2

3

.. .

# tìm kiếm tệp văn bản không đồng bộ

tương lai = [exe. gửi[search_txt_file, f, dirpath, query] for f in listdir[dirpath]]

Tiếp theo, chúng ta có thể xử lý kết quả khi chúng có sẵn thông qua việc lặp lại các đối tượng Tương lai theo thứ tự chúng được hoàn thành thông qua hàm as_completed[]

1

2

3

4

.. .

# xử lý kết quả

cho tương lai trong as_completed[futures]:

    #.

Đối với mỗi đối tượng Tương lai, trước tiên chúng ta có thể nhận được kết quả dưới dạng một bộ tên tệp và truy vấn phù hợp, sau đó báo cáo kết quả bằng các câu lệnh print[] như chúng ta đã làm trước đó trong phiên bản nối tiếp

1

2

3

4

5

6

7

8

.. .

# nhận kết quả

tên tệp, khớp = tương lai.kết quả[]

# báo cáo kết quả

if len[khớp] > 0:

    print[f'>{len[matches]

    cho dòng trong trận đấu:

        in[f'\t{line}]

Liên kết điều này lại với nhau, phiên bản cập nhật của hàm search_txt_files[] tìm kiếm các tệp văn bản cho một truy vấn không đồng bộ bằng cách sử dụng nhóm quy trình được liệt kê bên dưới

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# tìm kiếm tất cả các tệp txt trong một thư mục

def search_txt_files[dirpath, query]:

   # tạo nhóm quy trình

    với ProcessPoolExecutor[] as exe:

     # tìm kiếm tệp văn bản không đồng bộ

        hợp đồng tương lai = [exe.gửi[search_txt_file, f, dirpath, query] for f in listdir[dirpath]]

        # kết quả xử lý

        cho tương lai trong as_completed[futures]:

            # nhận được kết quả

            tên tệp, khớp = future.kết quả[]

            # báo cáo kết quả

            if len[khớp] > 0:

                        in[f'>{len[matches]

                        cho đường trong trận đấu:

                    in[f'\t{line}]

Và đó là nó

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

#Trăn Siêu Nhanh. com

# tìm kiếm đồng thời tất cả các tệp văn bản trong một thư mục cho một truy vấn

từ os nhập listdir

từ os. đường dẫn nhập tham gia

từ đồng thời. tương lai nhập ProcessPoolExecutor

từ đồng thời. tương lai nhập as_ đã hoàn thành

 

# tải tài liệu

def load_txt_file[đường dẫn tệp]:

    với mở[đường dẫn tệp, encoding='utf-8'] as file:

        trả lại tệp. đọc[]

 

# trả về tất cả các dòng trong nội dung chứa truy vấn

def search_file_contents[nội dung, query]:

    # chia nội dung thành các dòng

    dòng = nội dung. đường phân chia[]

    # tìm tất cả các dòng có chứa truy vấn

    lower_query = truy vấn. thấp hơn[]

    return [line for line in lines if lower_query in line.thấp hơn[]]

 

# mở tệp văn bản và trả về tất cả các dòng chứa truy vấn

def search_txt_file[tên tệp, dirpath, query]:

    # tạo đường dẫn

    filepath = tham gia[dirpath, filename]

    # mở tệp

    nội dung = load_txt_file[filepath]

    # tìm kiếm nội dung

    khớp = search_file_contents[content, query]

    return [tên tệp, matches]

 

# tìm kiếm tất cả các tệp txt trong một thư mục

def search_txt_files[dirpath, query]:

   # tạo nhóm quy trình

    với ProcessPoolExecutor[] as exe:

     # tìm kiếm tệp văn bản không đồng bộ

        hợp đồng tương lai = [exe.gửi[search_txt_file, f, dirpath, query] for f in listdir[dirpath]]

        # kết quả xử lý

        cho tương lai trong as_completed[futures]:

            # nhận được kết quả

            tên tệp, khớp = future.kết quả[]

            # báo cáo kết quả

            if len[khớp] > 0:

                        in[f'>{len[matches]

                        cho đường trong trận đấu:

                    in[f'\t{line}]

 

# điểm vào

if __name__ == '__main__'.

    # vị trí của tệp txt

    ĐƯỜNG ĐI = 'txt'

   # văn bản cần tìm

    CÂU HỎI = 'jason'

    # tìm kiếm truy vấn trong tất cả các tệp văn bản

    search_txt_files[DIRPATH, QUERY]

Chạy ví dụ gửi một cuộc gọi vào nhóm quy trình cho từng tệp trong thư mục

Chương trình báo cáo kết quả tương tự như ví dụ nối tiếp ở trên, mặc dù nhanh hơn nhiều

Trong trường hợp này, chương trình mất khoảng 400 mili giây để hoàn thành, bằng khoảng một nửa thời gian so với trường hợp nối tiếp

Mất bao lâu để chạy trên hệ thống của bạn?
Hãy cho tôi biết trong phần nhận xét bên dưới.

Thử nghiệm với các truy vấn khác nhau, tôi muốn nghe những gì bạn khám phá được

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

>1 kết quả được tìm thấy trong 3600-0. txt

Đôi khi cô đóng vai bác sĩ. Jason of Pheres được cho qua

>5 kết quả được tìm thấy trong 10-0. txt

làm náo động cả thành phố, và tấn công nhà của Jason, và

17. 6 Và khi họ không tìm thấy họ, họ đã kéo Jason và một số

thế giới lộn ngược cũng đến đây; . 7 Người mà Jason có

17. 9 Và khi họ đã bảo vệ được Jason và những người kia, họ

16. 21 Timotheus đồng nghiệp của tôi, và Lucius, và Jason, và Sosipater,

>1 kết quả được tìm thấy trong 408-0. txt

sau đó Jason và các Argonauts của anh ấy mơ hồ lang thang vào

>2 kết quả được tìm thấy trong 3207-0. txt

đường phố. Luke] Jason và một số Anh em đến những Người cai trị Thành phố,

Ngoài ra, người mà Jason đã nhận được. Và tất cả những điều này đều trái với Nghị định

>3 kết quả được tìm thấy trong 6130-0. txt

và Jason ở Apollonius, và một số người khác theo cách tương tự

Gửi Jason, người chăn cừu của người dân của mình, khoan,]

Con trai của Jason đã đưa ra mức giá như thế nào;

>1 kết quả được tìm thấy trong 1727-0. txt

đến Jason

>1 kết quả được tìm thấy trong 996-0. txt

Chiến lợi phẩm phong phú hơn của Jason;

Bối rối với API lớp ProcessPoolExecutor?
Tải xuống bảng cheat PDF MIỄN PHÍ của tôi

Tiện ích mở rộng

Phần này liệt kê các ý tưởng để mở rộng hướng dẫn

  • Hiển thị tên sách. Cập nhật ví dụ để báo cáo tên sách cho các tệp văn bản trùng khớp
  • Ánh xạ các đối tượng Tương lai thành tên tệp. Cập nhật search_txt_files[] để ánh xạ tên tệp tới các đối tượng Tương lai để có thể báo cáo kết quả và search_txt_file[] chỉ cần trả về kết quả khớp
  • Tải sách xuống, sau đó tìm kiếm. Cập nhật ví dụ để tải xuống sách đầu tiên từ gutenberg. org bằng ThreadPoolExecutor, sau đó tìm kiếm nội dung của từng cuốn sách bằng ProcessPoolExecutor

Chia sẻ các tiện ích mở rộng của bạn trong các nhận xét bên dưới, thật tuyệt khi thấy những gì bạn nghĩ ra

Khóa học Python ProcessPoolExecutor miễn phí

Tải xuống bảng cheat API ProcessPoolExecutor của tôi và như một phần thưởng, bạn sẽ nhận được quyền truy cập MIỄN PHÍ vào khóa học email 7 ngày của tôi

Khám phá cách sử dụng lớp ProcessPoolExecutor bao gồm cách định cấu hình số lượng công nhân và cách thực thi các tác vụ không đồng bộ

Tìm hiểu thêm
 

Đọc thêm

Phần này cung cấp các tài nguyên bổ sung mà bạn có thể thấy hữu ích

Sách

  • ProcessPoolExecutor Jump-Start, Jason Brownlee, 2022 [cuốn sách của tôi. ]
  • Câu hỏi phỏng vấn về API hợp đồng tương lai đồng thời
  • Bảng gian lận API lớp ProcessPoolExecutor

Tôi cũng giới thiệu các chương cụ thể từ những cuốn sách sau

  • Python hiệu quả, Brett Slatkin, 2019
    • Xem Chương 7. Đồng thời và song song
  • Sơ lược về Python, Alex Martelli, et al. , 2017
    • Nhìn thấy. chương. 14. Chủ đề và quy trình

hướng dẫn

  • Quá TrìnhBể BơiExecutor. Hướng dẫn hoàn chỉnh

API

  • đồng thời. tương lai - Khởi chạy các nhiệm vụ song song

Choáng ngợp trước các API đồng thời của python?
Tìm sự giải thoát, hãy tải xuống Sơ đồ tư duy về đồng thời Python MIỄN PHÍ của tôi

mang đi

Trong hướng dẫn này, bạn đã khám phá ra cách tìm kiếm đồng thời các tệp văn bản bằng cách sử dụng nhóm quy trình worker

Chủ Đề