Hướng dẫn python glob glob1 - trăn cầu giọt1

Nội dung chính

Nội dung chính

  • Lấy danh sách tên file và thư mục trong python | os.listdir()
  • Lấy danh sách tên file trong thư mục python | os.path.isfile()
  • Lấy danh sách tên thư mục trong python | os.path.isdir()
  • Lấy danh sách tên file và thư mục trong python | Path.iterdir()
  • Lấy danh sách tên file và thư mục trong python | glob()
  • Lấy danh sách đệ quy tên file và thư mục trong python | glob()
  • Tổng kết và thực hành

  • Lấy danh sách tên file và thư mục trong python | os.listdir()
  • Lấy danh sách tên file trong thư mục python | os.path.isfile()
  • Lấy danh sách tên thư mục trong python | os.path.isdir()
  • Lấy danh sách tên file và thư mục trong python | Path.iterdir()
  • Lấy danh sách tên file và thư mục trong python | glob()
  • Lấy danh sách đệ quy tên file và thư mục trong python | glob()
  • Tổng kết và thực hành

Hướng dẫn cách lấy danh sách tên file và thư mục trong python. Bạn sẽ học được cách lấy danh sách tên file và thư mục trong python, lấy danh sách đệ quy tên file và thư mục trong python
với các phương pháp như bằng hàm os.listdir(), hàm glob.glob(), phương thức Path.iterdir() sau bài học này.

Lấy danh sách tên file và thư mục trong python | os.listdir()

Để lấy danh sách tên file và thư mục có trong thư mục được chỉ định, chúng ta dùng hàm os.listdir() tích hợp trong module os, với cú pháp sau đây:

os.listdir(path)

Trong đó

import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


0 là đường dẫn thư mục cần lấy danh sách file và thư mục con trong đó.

Sau khi chạy, kết quả trả về một list chứa tên của tất cả file và thư mục con có trong thư mục được chỉ định.

Lưu ý là hàm os.listdir() chỉ có thể lấy được các file và thư mục con nằm trực tiếp dưới thư mục được chỉ định, chứ không thể lấy được các file và thư mục chứa trong các thư mục con của nó.

Ví dụ, bạn có một thư mục có cấu trúc như sau:

data/
├── user
│   ├── dir1
│   ├── dir2
│   │     └── name.txt
│   ├── pass.txt
│   └── user.txt
├── client
└── move.py

Chúng ta sẽ lấy danh sách tên file và thư mục có trong thư mục

import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


1 như sau:

import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


Bạn có thể thấy trong kết quả tên các file và thư mục con nằm trực tiếp dưới thư mục

import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


1 là
import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


3, tuy nhiên file
import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


4 trong thư mục con
import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


5 lại không thể lấy được.

Để lấy danh sách đệ quy tên file và thư mục trong python, hãy sử dụng hàm glob() được hướng dẫn ở phần Lấy danh sách đệ quy tên file và thư mục trong python | glob()

Lấy danh sách tên file trong thư mục python | os.path.isfile()

Khi chỉ muốn lấy danh sách tên file trong thư mục python, chúng ta cần kết hợp hàm kiểm tra file có tồn tại hay không, và cách viết nội hàm List comprehension trong python.
Chúng ta viết :

import os

path = "./dir"
objects = os.listdir(path)
files_file = [f for f in objects if os.path.isfile(os.path.join(path, f))]

print(files_file)

Lấy danh sách tên thư mục trong python | os.path.isdir()

Tương tự, nếu chỉ muốn lấy danh sách tên thư mục trong python, chúng ta sử dụng kèm hàm kiểm tra folder có tồn tại hay không trong python.
Chúng ta viết như sau:

import os

objects = os.listdir(path)
files_dir = [f for f in objects if os.path.isdir(os.path.join(path, f))]
print(files_dir)

Lấy danh sách tên file và thư mục trong python | Path.iterdir()

Chúng ta cũng có thể sử dụng phương thức iterdir() trong module pathlib để lấy danh sách tên file và thư mục trong python với cú pháp sau đây:

os.listdir(path)

Trong đó

import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


0 là một instance tạo ra bởi class pathlib.Path() chứa thông tin đường dẫn của thư mục gốc.
Kết quả trả về của chương trình là một path iterator - một trình lặp đại diện cho các tệp và thư mục có trong thư mục gốc.

Cách sử dụng như ví dụ sau:

import pathlib

p = pathlib.Path('./user')
user_iter = p.iterdir()
print(user_iter)


for file in user_iter:
print(file)




Lấy danh sách tên file và thư mục trong python | glob()

Chúng ta cũng có thể sử dụng hàm glob() trong module glob() để lấy danh sách tên file và thư mục trong python với cách viết sau đây:

import glob

obj_list=glob.glob("./user/**")
print(obj_list)


Bạn có thể gán đường dẫn thư mục vào biến và sử dụng như sau:

import glob

src="./user"
obj_list=glob.glob(src+"/**")
print(obj_list)


Lấy danh sách đệ quy tên file và thư mục trong python | glob()

Để lấy danh sách đệ quy tên file và thư mục trong python, bao gồm cả các file và thư mục trong một thư mục và các thư mục con của nó, chúng ta sử dụng hàm glob() đệ quy như sau:

import glob

obj_list=glob.glob("./user/**",recursive=True)
print(obj_list)

Bạn có thể gán đường dẫn thư mục vào biến và sử dụng như sau:

import glob

src="./user"
obj_list=glob.glob(src+"/**",recursive=True)
print(obj_list)

Cả hai đều đưa ra kết quả là danh sách đệ quy tên file và thư mục có trong thư mục

import os

src='./user'
obj_list=os.listdir(src)
print(obj_list)


1 như sau:

['./user\\', './user\\dir1', './user\\dir1\\kiyoshi', './user\\dir1\\user.txt', './user\\dir2', './user\\dir2\\kiyoshi', './user\\dir2\\user.txt', './user\\pass.txt', './user\\user.txt']
  • Bạn có thể tìm hiểu chi tiết cách dùng hàm glob.glob() trong python tại bài Lấy danh sách tên file và thư mục theo điều kiện trong python.

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn về cách lấy danh sách tên file và thư mục trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại Creativecommons và DMCA