Làm cách nào để cài đặt toàn cầu trên Python?

Mô-đun glob là một phần hữu ích của thư viện chuẩn Python. glob [viết tắt của toàn cầu] được sử dụng để trả về tất cả các đường dẫn tệp khớp với một mẫu cụ thể

Chúng ta có thể sử dụng glob để tìm kiếm một mẫu tệp cụ thể hoặc có lẽ hữu ích hơn là tìm kiếm các tệp có tên tệp khớp với một mẫu nhất định bằng cách sử dụng các ký tự đại diện

Theo Wikipedia, “glob mẫu chỉ định bộ tên tệp có ký tự đại diện”

Các mẫu này tương tự như biểu thức chính quy nhưng đơn giản hơn nhiều

  • Dấu hoa thị [*]. Khớp không hoặc nhiều ký tự
  • Dấu chấm hỏi [?] khớp chính xác với một ký tự

Mặc dù có thể sử dụng glob để tìm kiếm một tệp có tên tệp cụ thể, nhưng tôi thấy nó đặc biệt hữu ích khi đọc trong một số tệp có tên tương tự. Sau khi xác định các tệp này, chúng có thể được nối vào một khung dữ liệu để phân tích thêm

Ở đây chúng tôi có một thư mục đầu vào với một số tệp csv chứa dữ liệu chứng khoán. Hãy sử dụng toàn cầu để xác định các tệp

Ví dụ toàn cầu

Ở đây chúng tôi đọc tất cả các tệp csv trong thư mục đầu vào của bạn và ghép chúng vào một khung dữ liệu

Chúng ta có thể thấy một vấn đề nhỏ với điều này trong đầu ra mẫu bên dưới — chúng ta không biết hàng đó thuộc về tệp nào. Mã cổ phiếu chỉ là tên của mỗi tệp và không được bao gồm trong khung dữ liệu được nối của chúng tôi

Khung dữ liệu toàn cầu

Chúng ta có thể giải quyết vấn đề mã cổ phiếu bị thiếu bằng cách thêm một cột bổ sung có ký hiệu mã cổ phiếu

Chúng tôi tạo một cột mới với tên tệp, sau đó sử dụng

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
2 để xóa dữ liệu, loại bỏ phần mở rộng tệp không mong muốn

Ví dụ toàn cầu với cột được tạo từ tên tệp

Điều này có vẻ tốt hơn nhiều. Bây giờ chúng ta có thể biết mỗi hàng thuộc về mã nào

Khung dữ liệu có thêm mã đánh dấu

Bây giờ chúng tôi có một khung dữ liệu hữu ích với tất cả dữ liệu chứng khoán của chúng tôi. Điều này sau đó có thể được sử dụng để phân tích thêm

Mô-đun glob cũng rất hữu ích để tìm văn bản trong tệp. Tôi sử dụng rộng rãi glob để xác định các tệp có chuỗi phù hợp

Nhiều [rất, rất nhiều] lần, tôi biết mình đã viết mã mà mình cần, nhưng không nhớ tìm nó ở đâu hoặc tôi cần tìm mọi chương trình có chứa một địa chỉ e-mail hoặc giá trị h̵a̵r̵d̵-̵c̵o̵d̵e̵d̵ nào đó

Đầu tiên, chúng ta có thể sử dụng toàn cầu để tìm tất cả các tệp trong một thư mục và các thư mục con của nó khớp với mẫu tìm kiếm. Sau đó, chúng tôi đọc tệp dưới dạng chuỗi và tìm kiếm mẫu tìm kiếm phù hợp

Ví dụ, tôi biết trước đây tôi đã tạo một sơ đồ KDE, nhưng tôi không thể nhớ tìm nó ở đâu

Hãy tìm tất cả các tệp

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
5 và tìm kiếm chuỗi 'kdeplot'

Quả cầu để tìm trận đấu chuỗi

Chúng tôi đã tìm thấy hai tệp chứa chuỗi 'kdeplot'. Tệp,

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
6 phải là thứ chúng tôi đang tìm kiếm

Tệp khác — glob0 là tên của tệp chứa ví dụ này, vì vậy nó chắc chắn không phải là ví dụ tạo các ô KDE mà chúng tôi đang tìm kiếm

Hai mục trong ví dụ này khác với mục trên. Chúng tôi đã chỉ định glob1 và sử dụng glob2 thay vì glob

Thêm đối số glob1 yêu cầu glob tìm kiếm tất cả các thư mục con cũng như thư mục glob6. Điều này có thể rất hữu ích nếu chúng tôi không chắc chắn chính xác cụm từ tìm kiếm của bạn sẽ nằm trong thư mục nào

Khi đối số glob7 không được chỉ định hoặc được đặt thành glob8, chúng tôi chỉ tìm kiếm trong thư mục được chỉ định trong đường dẫn tìm kiếm của chúng tôi

Tìm kiếm một số lượng lớn các thư mục có thể mất nhiều thời gian và sử dụng nhiều bộ nhớ. Một giải pháp cho vấn đề này là sử dụng glob2

glob2 khác với glob ở chỗ nó trả về một iterator “tạo ra các giá trị giống như glob mà không lưu trữ tất cả chúng đồng thời” theo tài liệu. Điều này sẽ mang lại hiệu suất được cải thiện so với glob

Phần kết luận

Tại đây, chúng tôi đã xem xét mô-đun glob của Python và hai trường hợp sử dụng tài sản mạnh mẽ này cho thư viện chuẩn của Python

Chúng tôi đã trình bày việc sử dụng glob để tìm tất cả các tệp trong một thư mục khớp với một mẫu nhất định. Sau đó, các tệp được nối vào một khung dữ liệu duy nhất để sử dụng cho phân tích sâu hơn

Chúng tôi cũng đã thảo luận về việc sử dụng glob2 để tìm kiếm đệ quy nhiều thư mục cho các tệp chứa một chuỗi nhất định

Hướng dẫn này chỉ là một cái nhìn ngắn gọn về một số cách sử dụng có thể có của mô-đun glob. Tôi rất thích xem những cách bạn nghĩ ra để sử dụng nó

Mô-đun tìm thấy tất cả các tên đường dẫn khớp với một mẫu đã chỉ định theo các quy tắc được sử dụng bởi Unix shell, mặc dù kết quả được trả về theo thứ tự tùy ý. Không mở rộng dấu ngã nào được thực hiện, nhưng

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
5,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
6 và phạm vi ký tự được biểu thị bằng
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
7 sẽ được đối sánh chính xác. Điều này được thực hiện bằng cách sử dụng các hàm và cùng lúc, chứ không phải bằng cách thực sự gọi một lớp con

Lưu ý rằng các tệp bắt đầu bằng dấu chấm [_______38] chỉ có thể khớp với các mẫu cũng bắt đầu bằng dấu chấm, không giống hoặc. [Đối với mở rộng biến dấu ngã và shell, hãy sử dụng và. ]

Đối với một trận đấu theo nghĩa đen, hãy bọc các ký tự meta trong ngoặc. Ví dụ:

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
4 khớp với ký tự
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
5

Xem thêm

Mô-đun cung cấp các đối tượng đường dẫn cấp cao

quả địa cầu. glob[tên đường dẫn , *, root_dir=None, dir_fd=None, recursive=False, include_hidden=False]

Trả về một danh sách có thể trống các tên đường dẫn khớp với tên đường dẫn, phải là một chuỗi chứa đặc tả đường dẫn. tên đường dẫn có thể là tuyệt đối [như

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
7] hoặc tương đối [như
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
8] và có thể chứa các ký tự đại diện kiểu shell. Các liên kết tượng trưng bị hỏng được đưa vào kết quả [như trong trình bao]. Kết quả có được sắp xếp hay không phụ thuộc vào hệ thống tệp. Nếu một tệp thỏa mãn các điều kiện bị xóa hoặc thêm trong khi gọi chức năng này, liệu tên đường dẫn cho tệp đó có được đưa vào hay không sẽ không được chỉ định

Nếu root_dir không phải là

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
9, thì nó phải là một chỉ định thư mục gốc để tìm kiếm. Nó có tác dụng tương tự như thay đổi thư mục hiện tại trước khi gọi nó. Nếu tên đường dẫn là tương đối, kết quả sẽ chứa các đường dẫn liên quan đến root_dir

Chức năng này có thể hỗ trợ với tham số dir_fd

Nếu đệ quy là đúng, mẫu “

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
91” sẽ khớp với bất kỳ tệp nào và không hoặc nhiều thư mục, thư mục con và liên kết tượng trưng tới thư mục. Nếu mẫu được theo sau bởi một hoặc thì các tệp sẽ không khớp

Nếu include_hidden là true, mẫu “

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
91” sẽ khớp với các thư mục ẩn

Tăng một

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
95 với các đối số
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
96,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
97

Tăng một

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
98 với các đối số
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
96,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
97,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
91,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
92

Ghi chú

Sử dụng mẫu “

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
91” trong các cây thư mục lớn có thể tiêu tốn một lượng thời gian không đáng có

Đã thay đổi trong phiên bản 3. 5. Hỗ trợ cho quả cầu đệ quy sử dụng “

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
91”.

Đã thay đổi trong phiên bản 3. 10. Đã thêm tham số root_dir và dir_fd.

Đã thay đổi trong phiên bản 3. 11. Đã thêm thông số include_hidden.

quả địa cầu. iglob[tên đường dẫn , *, root_dir=None, dir_fd=None, recursive=False, include_hidden=False]

Trả về một cái mang lại các giá trị giống như mà không thực sự lưu trữ tất cả chúng đồng thời

Tăng một

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
95 với các đối số
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
96,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
97

Tăng một

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
98 với các đối số
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
96,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
97,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
91,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
92

Đã thay đổi trong phiên bản 3. 5. Hỗ trợ cho quả cầu đệ quy sử dụng “

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
91”.

Đã thay đổi trong phiên bản 3. 10. Đã thêm tham số root_dir và dir_fd.

Đã thay đổi trong phiên bản 3. 11. Đã thêm thông số include_hidden.

quả địa cầu. thoát[tên đường dẫn]

Thoát tất cả các ký tự đặc biệt [

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
5,
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
56 và
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
57]. Điều này hữu ích nếu bạn muốn khớp một chuỗi ký tự tùy ý có thể có các ký tự đặc biệt trong đó. Các ký tự đặc biệt trong các điểm chia sẻ ổ đĩa/UNC không được thoát, e. g. trên Windows
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
58 trả về
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
59

Mới trong phiên bản 3. 4

Ví dụ: hãy xem xét một thư mục chứa các tệp sau. ________ 360, ________ 361, ________ 362 và thư mục con ________ 363 chỉ chứa tệp

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
64. sẽ tạo ra các kết quả sau. Lưu ý cách mọi thành phần hàng đầu của đường dẫn được bảo tồn

>>> import glob
>>> glob.glob['./[0-9].*']
['./1.gif', './2.txt']
>>> glob.glob['*.gif']
['1.gif', 'card.gif']
>>> glob.glob['?.gif']
['1.gif']
>>> glob.glob['**/*.txt', recursive=True]
['2.txt', 'sub/3.txt']
>>> glob.glob['./**/', recursive=True]
['./', './sub/']

Nếu thư mục chứa các tệp bắt đầu bằng

>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
8 thì chúng sẽ không được khớp theo mặc định. Ví dụ: hãy xem xét một thư mục chứa
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
62 và
>>> import glob
>>> glob.glob['*.gif']
['card.gif']
>>> glob.glob['.c*']
['.card.gif']
68

Toàn cầu có cần cài đặt Python không?

Mô-đun toàn cầu trong Python không yêu cầu cài đặt riêng và đi kèm với mọi cài đặt Python mặc định.

Làm cách nào để cài đặt toàn cầu trong Python bằng pip?

Trong hệ điều hành windows, sử dụng lệnh pip install glob2 để cài đặt glob trong python3. .
pip cài đặt global2 Sao chép mã
nhập toàn cầu Sao chép mã
pip3 cài đặt global2 Sao chép mã
sudo apt-get cài đặt glob2 Sao chép mã

Làm cách nào để cài đặt toàn cầu bằng Python trong Ubuntu?

Để cài đặt gói Python-Glob trong Linux, chúng ta phải làm theo các bước sau. Bước 1. Trước hết, chúng tôi sẽ cài đặt Python3 trên Máy Linux của chúng tôi. Sử dụng lệnh sau trong thiết bị đầu cuối để cài đặt Python3. Bước 3. Bây giờ, hãy cài đặt gói Python-Glob với sự trợ giúp của lệnh sau

Toàn cầu Python có hoạt động trên Windows không?

Điều duy nhất bạn cần để cài đặt mô-đun toàn cục trên Windows là. Trăn . PIP hoặc Conda [tùy theo sở thích của người dùng]

Chủ Đề