Cách lấy thông tin file trong python | Laptrinhcanban.com

Cách lấy thông tin file trong python

Hướng dẫn cách xử lý file trong Python. Bạn sẽ học được cách lấy thông tin file trong python như tên file, thời gian truy cập, kích thước file v.v.. bằng hàm os.scandir() sau bài học này.

Lấy thông tin file trong python | os.scandir()

Để lấy thông tin file trong python, chúng ta sử dụng hàm os.scandir() trong module os, với cú pháp sau đây:

os.scandir(path)

Trong đó path là đường dẫn file hoặc thư mục cần lấy thông tin.
Sau khi chạy hàm, một trình lặp của DirEntry objects - một đối tượng của class DirEntry chứa tất cả thông tin về file và thư mục sẽ được trả về. Các thông tin đó không những là tên file ha thư mục, mà còn bao gồm đường dẫn là tệp hay thư mục, cũng như thông tin về kích thước và thời gian tạo tệp v.v..

Ví dụ, chúng ta có thư mục với cấu trúc sau:

  |data/
  |--dir1
  |  |--dir2
  |  |--user.txt
  |
  |--dirr
  |
  |--take_file_name.py

Chúng ta sẽ lấy thông tin về tên và đường dẫn của cả file và thư mục con trong một thư mục gốc như sau:

import os

path = './dir1'
itr = os.scandir(path)
for entry in itr:
print(entry.name)
print(entry.path,"\n")

Kết quả:

dir2
./dir1\dir2

user.txt
./dir1\user.txt

Bạn có thể sử dụng các thuộc tính trong class os.DirEntry để kiểm tra đường dẫn là file hay thư mục, cũng như là lấy kích thước file, ngày tạo file v.v.. bằng cách dùng bảng thuộc tính hay dùng trong class os.DirEntry như sau:

Thuộc tínhÝ nghĩa
nameTên file, thư mục
pathĐường dẫn
stat().st_size()Kích thước file (Kb)
stat().isdir()Có phải là thư mục không
stat().isfile()Có phải là file không
stat().st_atime()Thời gian truy cập gần nhất
stat().st_mtime()Thời gian sửa file gần nhất

Ứng dụng bảng trên, chúng ta có thể lấy ra các thuộc tính của một file hoặc thư mục như sau:

import os

path = './dir1'
itr = os.scandir(path)
f = next(itr) #lấy ra một phần tử trong trình lặp.

print(f.name)
#user.txt

print(f.path)
#./dir1\user.txt

print(f.is_file())
#True

print(f.is_dir())
#False

file_size = f.stat().st_size
print(file_size)
#3059

file_last_access = f.stat().st_atime
print(file_last_access)
#1621229287.565634

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

Trên đây Kiyoshi đã hướng dẫn bạn về cách lấy thông tin file 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.