Kiểm tra tồn tại của file và thư mục trong python | Laptrinhcanban.com

Kiểm tra tồn tại của file và thư mục trong python

Hướng dẫn cách kiểm tra tồn tại của file và thư mục trong python. Bạn sẽ học được cách kiểm tra một tệp (hoặc thư mục) có tồn tại hay không trong Python bằng các hàm và phương thức cài sẵn sau bài học này.

Chúng ta có 5 phương pháp kiểm tra tồn tại của file và thư mục trong python như sau:

  • os.path.exists(): Kiểm tra tồn tại của đường dẫn trong python
  • os.path.isfile(): Kiểm tra tồn tại của file trong python
  • os.path.isdir(): Kiểm tra tồn tại của thư mục trong python
  • Kiểm tra đường dẫn chỉ định là file hay thư mục trong python
  • Path.exists(): Kiểm tra tồn tại của file và thư mục trong python

Kiểm tra tồn tại của đường dẫn trong python | os.path.exists()

Để kiểm tra tồn tại của đường dẫn trong python, chúng ta sử dung hàm os.path.exists() được tích hợp trong module os, với cú pháp sau đây

os.path.exists(path)

Trong đó path là đường dẫn của file hoặc thư mục cần kiểm tra.

Nếu đường dẫn path tồn tại, giá trị True sẽ được trả về. Nếu path không tồn tại, False sẽ được trả về.

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

data
├── user
│   ├── dir1
│   └── user.txt
├── client
└── move.py

Chúng ta kiểm tra tồn tại của đường dẫn các file và thư mục như sau:

import os

filepath = './user/user.txt'
print(os.path.exists(filepath))
# True

dirpath = './user/dir1'
print(os.path.exists(dirpath))
# True

dirpath2 = './user/address'
print(os.path.exists(dirpath2))
# False

Kiểm tra tồn tại của file trong python | os.path.isfile()

Để kiểm tra tồn tại của file trong python, chúng ta sử dung hàm os.path.isfile() được tích hợp trong module os, với cú pháp sau đây.

os.path.isfile()

Trong đó path là đường dẫn của file cần kiểm tra tồn tại.

Nếu file với đường dẫn path tồn tại, giá trị True sẽ được trả về. Nếu path không tồn tại, False sẽ được trả về.

Lưu ý là nếu chỉ định path là một đường dẫn thư mục, kể cả thư mục đó có tồn tại thì False cũng sẽ được trả về.

import os
print(os.path.isfile(filepath))
# True

print(os.path.isfile(dirpath))
# False

Ví dụ:

import os

filepath = './user/user.txt'
print(os.path.isfile(filepath))
# True

filepath2 = './user/name.txt'
print(os.path.isfile(filepath))
# False

dirpath = './user/dir1'
print(os.path.isfile(dirpath))
# False

Kiểm tra tồn tại của thư mục trong python | os.path.isdir()

Để kiểm tra tồn tại của thư mục trong python, chúng ta sử dung hàm os.path.isdir() được tích hợp trong module os, với cú pháp sau đây.

os.path.isdir()

Trong đó path là đường dẫn của thư mục cần kiểm tra tồn tại.

Nếu thư mục với đường dẫn path tồn tại, giá trị True sẽ được trả về. Nếu path không tồn tại, False sẽ được trả về.

Lưu ý là nếu chỉ định path là một đường dẫn file, kể cả file đó có tồn tại thì False cũng sẽ được trả về.

import os
print(os.path.isdir(dirpath))
# True

print(os.path.isdir(filepath))
# False

Ví dụ:

import os

dirpath = './user/dir1'
print(os.path.isdir(dirpath))
# True

dirpath1 = './user/address'
print(os.path.isdir(dirpath1))
# False

filepath = './user/user.txt'
print(os.path.isdir(filepath))
# False

Kiểm tra đường dẫn chỉ định là file hay thư mục trong python

Sử dụng hai hàm os.path.isfile() và os.path.isdir() ở trên, chúng ta có thể kiểm tra một đường dẫn là file hay thư mục trong python.
Ví dụ, bạn có một thư mục có cấu trúc như sau:

data
├── user
│   ├── dir1
│   ├── address.txt
│   └── user.txt
├── client
└── move.py

Bạn muốn di chuyển tất cả các file trong thư mục user sang thư mục client, và giữ lại các thư mục con trong thư mục user.
Khi đó bạn có thể kiểm tra đường dẫn là file hay thư mục trong python và chỉ tiến hành di chuyển nếu đường dẫn là file như sau:

import os
import shutil

src= './user'
dst= './client'

for obj in os.listdir(src):
path = os.path.join(src,obj)
if os.path.isfile(path):
shutil.move(path,dst)

Kết quả, chỉ có các file trong thư mục user được di chuyển như sau:

data
├── user
│   └── dir1
│ 
├── client
│   ├── address.txt
│   └── user.txt
└── move.py

Nếu bạn chỉ muốn di chuyển thư mục con và giữ lại file trong ví dụ trên, hãy sử dụng os.path.isdir
thay cho os.path.isfile là xong.

Kiểm tra tồn tại của file và thư mục trong python | Path.exists()

Ngoài sử dụng các hàm trong module os, bạn cũng có thể sử dụng phương thức Path.exists() để kiểm tra tồn tại của file và thư mục trong python, với cú pháp sau đây:

Path.exists()

Trong đó Path là một path object - một instance được tạo ra từ class pathlib.Path() để chứa thông tin đường dẫn của file hoặc thư mục cần kiểm tra.

Nếu như đường dẫn đó tồn tại, kết quả True sẽ được trả về, và False trong trường hợp ngược lại.

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

import pathlib

p = pathlib.Path('./user/address')
print(p.exists())
#>> True

p2 = pathlib.Path('./user/user.txt')
print(p.exists())
#>> False

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

Trên đây Kiyoshi đã hướng dẫn bạn về cách kiểm tra tồn tại của 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.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.