Hướng dẫn cách lấy kích thước file và thư mục trong python. Bạn sẽ học được cách lấy kích thước file trong python bằng hàm os.path.getsize() cũng như kết hợp với các hàm os.scandir() và os.listdir() để lấy kích thước thư mục trong python sau bài học này.
Lấy kích thước file trong ptyhon | os.path.getsize()
Để lấy kích thước một file đã tồn tại trong ptyhon, chúng ta sử dụng hàm os.path.getsize() trong module os, với cú pháp sau đây:
os.path.getsize(path)
Trong đó path
là đường dẫn của file cần lấy kích thước. Kết quả trả về sẽ là kích thước file với đơn vị KB
như sau:
import os |
Để lấy kết quả kích thước file với đơn vị khác, ví dụ như là GB, chúng ta chia kết quả với hệ số là xong.
import os |
Nếu file đó không tồn tại hoặc không thể truy cập, lỗi OSError sẽ xảy ra:
OSError: File not found |
Lấy kích thước thư mục trong python | os.scandir()
Ứng dụng hàm os.path.getsize() và kết hợp với hàm os.scandir(), chúng ta có thể lấy kích thước thư mục trong python bằng cách tính tổng kích thước tất cả các file có trong thư mục đó, với chương trình sau đây:
import os |
Trong mã mẫu, chúng ta tạo ra một trình lặp (Iterator) từ hàm os.scandir(), sau đó với mỗi đường dẫn entry
lấy ra từ trình lặp, chúng ta sẽ kiểm tra đó là file hay thư mục con, và tùy vào đó để tiến hành lấy thuộc tính stat().st_size
- kích thước của file để cộng vào biến tổng kích thước total
.
Nếu như bạn chỉ muốn lấy tổng kích thước các file nằm trực tiếp dưới thư mục đó mà không lấy tất cả các file trong thư mục con một cách đệ quy, hãy xóa dòng code dưới đây trong mã lệnh là xong:
elif entry.is_dir(): |
- Bạn có thể tìm hiểu thêm về cách sử dụng hàm os.scandir() tại bài Lấy thông tin file trong python
Lấy kích thước thư mục trong python | os.isdir()
Trong các phiên bản Python3.4 về trước, do không tồn tại hàm os.scandir() nên chúng ta phải dùng kết hợp hàm os.isdir() để lấy kích thước thư mục, với mã lệnh sau đay:
def get_dir_size_old(path='.'): |
Cách sử dụng thì tương tự như với ở phần trên, và bạn có thể chọn một trong hai kiểu để lấy kích thước thư mục trong python. Tuy nhiên cách dùng os.scandir() thì mới hơn nên nó có thể có nhiều ưu điểm hơn với cách sử dụng cũ, nên Kiyoshi khuyên bạn nên dùng hàm os.scandir() hơn khi muốn lấy kích thước thư mục 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 kích thước 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.
URL Link
HOME › python cơ bản - lập trình python cho người mới bắt đầu>>16. xử lý file trong python