CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này cung cấp những giải thích chi tiết về việc sử dụng mô-đun toàn cầu ký tự đại diện python, được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
Ký tự đại diện là các ký hiệu đặc biệt, chủ yếu là dấu hoa thị (*) và dấu chấm hỏi (?), được sử dụng để làm mờ các tệp tìm kiếm "*" có thể khớp với bất kỳ số lượng ký hiệu nào và "?" có thể khớp với một ký tự đơn.
Khi tìm kiếm một thư mục, bạn có thể sử dụng nó để thay thế một hoặc nhiều ký tự thực; khi không biết ký tự thực hoặc bạn cần khớp nhiều tệp đích đáp ứng các điều kiện nhất định, bạn có thể sử dụng ký tự đại diện để thay thế một hoặc nhiều ký tự thực.
Tiếng Anh "globbing" có nghĩa là phân bổ thống nhất. Python định nghĩa hàm glob() trong mô-đun toàn cầu, hàm này thực hiện chức năng khớp nội dung thư mục. Hàm glob.glob() chấp nhận mẫu toàn cầu làm đầu vào và trả về tất cả các tệp phù hợp. tên và tên đường dẫn, tương tự như os.listdir.
Các hàm thường được sử dụng trong mô-đun toàn cầu:
?
1
|
glob(tên đường dẫn, đệ quy
=
SAI
)
|
Tên đường dẫn tham số đầu tiên là chuỗi cần khớp. (Tham số này nên có tiền tố r càng nhiều càng tốt để tránh những lỗi không đáng có).
Tham số thứ hai biểu thị lệnh gọi đệ quy, được sử dụng cùng với ký tự đại diện đặc biệt "**" và mặc định là Sai.
Hàm này trả về danh sách chuỗi các đường dẫn đáp ứng các điều kiện. Nếu bạn đang sử dụng hệ thống Windows, ký hiệu "\" trên đường dẫn sẽ tự động được thoát và đổi thành "\\".
?
1
|
iglob(tên đường dẫn, đệ quy
=
SAI
)
|
Các tham số giống như glob().
Trả về một trình vòng lặp không lưu tất cả các đường dẫn phù hợp cùng một lúc, nhưng lấy từng tên đường dẫn tệp trùng khớp. Kết quả của việc duyệt qua trình vòng lặp phù hợp với kết quả được trả về bằng cách gọi glob() với cùng các tham số.
Các ký tự đại diện được hỗ trợ bởi mô-đun toàn cầu:
ký tự đại diện |
Chức năng |
* |
Khớp 0 ký tự trở lên |
** |
Khớp tất cả các tệp, thư mục, thư mục con và tệp trong thư mục con (mới trong phiên bản 3.5) |
? |
Khớp với 1 ký tự, khác với ký tự ? |
[exp] |
Khớp các ký tự trong phạm vi được chỉ định, chẳng hạn như: [1-9] khớp các ký tự trong phạm vi từ 1 đến 9 |
[!exp] |
Khớp các ký tự không nằm trong phạm vi được chỉ định |
ví dụ sử dụng hàm glob.glob
?
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
|
nhập khẩu
toàn cầu
danh sách toàn cầu
=
[]
danh sách toàn cầu
=
glob.glob(r
"/home/xxx/picture/*.png"
)
listglob.sort()
in
danh sách toàn cầu
in
'--------------------'
danh sách toàn cầu
=
glob.glob(r
"/home/xxx/picture/0?.png"
)
listglob.sort()
in
danh sách toàn cầu
in
'--------------------'
danh sách toàn cầu
=
glob.glob(r
"/home/xxx/picture/0[0,1,2].png"
)
listglob.sort()
in
danh sách toàn cầu
in
'--------------------'
danh sách toàn cầu
=
glob.glob(r
"/home/xxx/picture/0[0-3].png"
)
listglob.sort()
in
danh sách toàn cầu
in
'--------------------'
danh sách toàn cầu
=
glob.iglob(r
"/home/xxx/picture/0[az].png"
)
in
danh sách toàn cầu
vì
mục
TRONG
danh sách toàn cầu:
in
mục
|
Bổ sung: Hàm glob() của Python có thể được hiểu trong vài giây.
Python glob()
Mô-đun toàn cầu là một trong những mô-đun đơn giản nhất và có rất ít nội dung. Sử dụng nó để tìm tên đường dẫn tệp phù hợp với các quy tắc cụ thể.
Nó tương tự như việc sử dụng tìm kiếm tập tin trong Windows. Chỉ có ba ký tự trùng khớp được sử dụng để tìm tệp: '*', "?", "[ ]". "*" khớp với bất kỳ 0 ký tự nào trở lên; "?" khớp với bất kỳ ký tự đơn nào; "[ ]" khớp với các ký tự trong phạm vi được chỉ định, chẳng hạn như: [0-9] khớp với số.
Không phân biệt chữ hoa chữ thường.
'.' không khớp.
in(glob.glob(r' . ./*') )
Tất cả các thư mục ở cấp độ trước đó.
?
1
2
|
>>>
in
(global.globe(
"../*"
))
[
'..\\Python37-32'
,
'..\\Python38-32'
]
|
in(glob.glob(r' ./*') )
Tất cả các thư mục ở cấp độ này.
?
1
2
|
>>>
in
(global.globe(
"./*"
))
[
'.\\DLL'
,
'.\\Tài liệu'
,
'.\\bao gồm'
,
'.\\Lib'
,
'.\\thư viện'
,
'.\\GIẤY PHÉP.txt'
,
'.\\TIN TỨC.txt'
,
'.\\python.exe'
,
'.\\python3.dll'
,
'.\\python38.dll'
,
'.\\pythonw.exe'
,
'.\\Kịch bản'
,
'.\\tcl'
,
'.\\Công cụ'
,
'.\\vcruntime140.dll'
]
|
in(glob.glob(r' ./ * . *') )
Tất cả các tập tin ở cấp độ này.
?
1
2
|
in
(global.globe(
"./*.*"
))
[
'.\\GIẤY PHÉP.txt'
,
'.\\TIN TỨC.txt'
,
'.\\python.exe'
,
'.\\python3.dll'
,
'.\\python38.dll'
,
'.\\pythonw.exe'
,
'.\\vcruntime140.dll'
]
|
in(glob.glob(r' ./ * . *') )
Tất cả các dll ở cấp độ này.
?
1
2
|
>>>
in
(global.globe(
"./*.dll"
))
[
'.\\python3.dll'
,
'.\\python38.dll'
,
'.\\vcruntime140.dll'
]
|
in(glob.glob(r' C:/ * ') )
Tất cả các thư mục trên ổ C.
?
1
2
|
>>>
in
(global.globe(
"C:/*"
))
[
'C:/$360Phần'
,
'C:/$Recycle.Bin'
,
'C:/360SANDBOX'
,
'C:/Khởi động'
,
'C:/bootmgr'
.......]
|
in(glob.glob(“C:/[PB][RO]”) )
Tất cả các thư mục chứa pr/po/br/bo trên ổ C.
?
1
2
|
in
(global.globe(
"C:/*[PB][RO]*"
))
[
'C:/360SANDBOX'
,
'C:/Khởi động'
,
'C:/bootmgr'
,
'C:/BOOTNXT'
,
'C:/BOOTSECT.BUCK'
,
'C:/PO'
,
'C:/Program Files'
,
'C:/Program Files (x86)'
,
'C:/Dữ liệu chương trình'
]
|
in(glob.glob(“C:/p?O”) )
Tất cả các thư mục chứa P_o trên ổ C.
?
1
2
|
>>>
in
(global.globe(
"C:/*P?O*"
))
[
'C:/Program Files'
,
'C:/Program Files (x86)'
,
'C:/Dữ liệu chương trình'
]
|
in(glob.glob(“C://.txt”) )
Tất cả các tệp txt trong thư mục hai cấp của ổ C.
?
1
2
|
>>>
in
(global.globe(
"C:/*/*.txt"
))
[
'C:/xiaoyi\\search Formula.txt'
]
|
Trên đây là kinh nghiệm cá nhân của mình, hi vọng có thể cho các bạn tham khảo và mong các bạn có thể ủng hộ mình. Nếu có sai sót hoặc thiếu sót gì xin vui lòng chỉ giáo cho tôi.
Liên kết gốc: https://blog.csdn.net/dcrmg/article/details/78309469.
Cuối cùng, bài viết này về giải thích chi tiết về việc sử dụng mô-đun toàn cầu ký tự đại diện python có tại đây. Nếu bạn muốn biết thêm về giải thích chi tiết về việc sử dụng mô-đun toàn cầu ký tự đại diện python, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt qua phần liên quan. Tôi hy vọng tất cả các bạn ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!