Lấy Tên File, Thư Mục Và đuôi File Trong Python
Có thể bạn quan tâm
Hướng dẫn cách lấy tên file, thư mục và đuôi file trong python. Bạn sẽ học được cách sử dụng các hàm trong module os như os.path.basename(), os.path.dirname(), os.path.split(), os.path.splitext() trong python để lấy tên file, tên thư mục, đường dẫn thư mục và đuôi file trong python sau bài học này.
Lấy tên file trong python | os.path.basename()
Để lấy tên file trong python, chúng ta sử dụng hàm os.path.basename() trong module os, với cú pháp sau đây:
os.path.basename(path)
Trong đó path là đường dẫn của file cần lấy tên trong python. Kết quả chương trình, một tên file đầy đủ bao gồm cả tên và đuôi file sẽ được trả về.
Ví dụ, chúng ta có một thư mục như sau:
|data/ |--dir1 | | | |--user.txt | |--dir2 | |--take_file_name.pyChúng ta lấy tên của file user.txt như sau:
import osfilepath = './dir1/user.txt'basename = os.path.basename(filepath)print(basename)# user.txtprint(type(basename))# <class 'str'> |
Lưu ý, chúng ta có thể lấy tên file trong python ngay cả khi file đó vốn không tồn tại bằn hàm os.path.basename(). Do hàm này không kiểm tra file có tồn tại hay không, nên lỗi không xảy ra:
import osfilepath_not_exist = './dir1/address.txt'basename = os.path.basename(filepath_not_exist)print(basename)# address.txt |
Nếu bạn chỉ muốn lấy tên file trong python với những file đã tồn tại, hãy sử dụng kết hợp với phương pháp kiểm tra file có tồn tại hay không mà Kiyoshi đã giới thiệu tại bài viết Kiểm tra tồn tại của file và thư mục trong python.
Lấy đuôi file trong python | os.path.splitext()
Để Lấy tên file trong python, chúng ta sử dụng hàm os.path.basename() ở trên kết hợp với hàm os.path.splitext() trong module os, với cú pháp sau đây:
os.path.splitext(filename)
Trong đó filename là tên file đầy đủ bao gồm cả tên và đuôi file của file cần lấy đuôi file trong python.Hàm os.path.splitext() sẽ chia fileame thành hai phần tại vị trí dấu chấm . cuối cùng ở bên phải, và lưu giữ kết quả dưới dạng một tuple.
Thông thường, file sẽ có dạng tên file + . + đuôi file, do đó sau khi dùng hàm os.path.splitext() thì tên file và đuôi file( bao gồm cả dấu chấm .) sẽ được tách ra và lưu giữ dưới dạng một tuple.Tùy vào mục đích sử dụng, ví dụ như chúng ta muốn lấy đuôi file trong python hay là lấy tên file không gồm đuôi file trong python mà chúng ta lấy thông tin ra từ tuple tạo ra.
Ví dụ, chúng ta lấy đuôi file và tên file không gồm đuôi file trong python như sau:
import osfilepath = './dir1/user.txt'basename = os.path.basename(filepath)print(basename)#user.txtname_tuple= os.path.splitext(basename)print(name_tuple)#('user', '.txt')filename=name_tuple[0]print(filename)#userfile_extension=name_tuple[1]print(file_extension)#.txt |
Nngoài cách truy cập vào phần tử trong tuple và lấy ra đuôi file , tên như ở trên, chúng ta còn có thể giải nén tuple và gán biến rồi sử dụng trực tiếp như dưới đây.
import osfilepath = './dir1/user.txt'file_name, file_extension = os.path.splitext(os.path.basename(filepath))print(file_name)#userprint(file_extension)#.txt |
Lưu ý, do trong kết quả của hàm os.path.splitext() sẽ bao gồm cả dấu chấm . ở trong đuôi file, do đó nếu bạn muốn bỏ đi dấu chấm này, hãy sử dụng kết hợp với hàm tách chuỗi trong python, hoặc là dùng cách xóa đi dấu chấm này bằng cách dùng hàm xóa ký tự trong chuỗi python.
file_extension_without_dot=name_tuple[1].strip(".") |
Lại nữa, do hàm os.path.splitext() chỉ tách đối số được chỉ định thành hai phần tại vị trí dấu chấm cuối cùng bên phải, nên với các file mà tên file được tạo ra từ nhiều hơn hai dấu chấm như filename.tar.gz, chúng ta cần phải sử dụng hàm này hai lần để có thể lấy tên file không kèm đuôi file trong python.
import osfilepath_tar_gz = './data/dir1/filename.tar.gz'basename=os.path.basename(filepath_tar_gz)print(basename)#filename.tar.gzbasename_split1=os.path.splitext(basename)print(basename_split1[0])#filename.tarbasename_split2=os.path.splitext(basename_split1)print(basename_split2[0])#filename |
Lấy tên thư mục trong python | os.path.basename()
Chúng ta cũng dùng hàm os.path.basename() để lấy tên thư mục trong python, bằng cách chỉ định đối số path là một đường dẫn thư mục
os.path.basename(path)
Cách sử dụng cũng tương tự như khi lấy tên file trong python, ví dụ:
import osfolderpath = './user/dir1'print(os.path.basename(folderpath))# dir1 |
Lấy đường dẫn thư mục trong python | os.path.dirname()
Để lấy đường dẫn thư mục trong python, chúng ta sử dụng hàm os.path.dirname() trong module os, với cú pháp sau đây:
os.path.dirname(path)
Trong đó path là đường dẫn của file hoặc thư mục cần lấy đường dẫn thư mục mẹ. Sau khi chạy, đường dẫn của thư mục mẹ chứa file hoặc thư mục chỉ đinh sẽ được trả về.Ví dụ:
import osfilepath = './user/dir1/user.txt'print(os.path.dirname(filepath))#./user/dir1dir_path='./user/dir1'print(os.path.dirname(dir_path))#./user |
Tương tự như với hàm os.path.basename() thì hàm os.path.dirname() không kiểm tra sự tồn tại của đường dẫn chỉ định, do đó chúng ta cũng có thể lấy đường dẫn của thư mục kể cả thư mục đó vốn không tồn tai trước đó:
import ospath_not_exist = './client/address.txt'dirname = os.path.dirname(path_not_exist)print(dirname)#./client |
Trong trường hợp chúng ta cần lấy tên của thư mục mẹ chứa file hoặc thư mục đã được chỉ định, hãy sử dụng kèm với hàm os.path.basename() như sau
import osfilepath = './user/dir1/user.txt'subdirname = os.path.basename(os.path.dirname(filepath))print(subdirname)# dir1 |
Lấy tên file kèm tên thư mục trong python | os.path.split()
Để lấy tên file kèm tên thư mục chứa nó trong python, chúng ta sử dụng hàm os.path.split() trong module os với cú pháp sau đây:
os.path.split(path)
Trong đó path là đường dẫn của file cần lấy tên file kèm tên thư mục chứa nó.Hàm os.path.split() sẽ tách đường dẫn chỉ định thành hai phần, tại vị trí dấu phân cách đường dẫn cuối cùng bên phải, sau đó lưu giữ kết quả vào một tuple.
Ví dụ:
import osfilepath = './user/dir1/user.txt'files= os.path.split(filepath)print(files)#('./user/dir1', 'user.txt') |
Để lấy tên file và tên thư mục chứa file đó, chúng ta có thể truy cập vào phần tử trong tuple ở trên như sau:
dir_path=files[0]print(dir_path)#./user/dir1filename=files[1]print(filename)#user.txt |
Ngoài ra, chúng ta có thể giải nén tuple trên và gán biến rồi sử dụng như dưới đây.
import osfilepath = './user/dir1/user.txt'dirname, basename = os.path.split(filepath)print(dirname)#./user/dir1print(basename)#user.txt |
Tổng kết và thực hành
Trên đây Kiyoshi đã hướng dẫn bạn về cách lấy tên file, thư mục và đuôi 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.
URL Link
https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/xu-ly-file-trong-python/lay-ten-file-thu-muc-duoi-file-trong-python/
Từ khóa » File Có đuôi Py
-
PY Là File Gì? Phần Mềm & Cách Mở File . PY, Sửa File Lỗi
-
PY Đuôi Tập Tin - DriverSol
-
Hướng Dẫn Cách Mở File PY Trên Windows 10 - Blog Tips F4vnn
-
Làm Việc Với File Trong Python
-
Phần Mở Rộng Tệp PY - TapTin
-
Thao Tác Với File Trong Python - Viblo
-
Cách Mở Và Xem File Python PY Trên Windows 10 - Windows789
-
Python Script Language Source Code File .py File Extension
-
Thao Tác Với File (Mở File, Đọc File, Ghi File, Xóa File) Trong Python
-
Xử Lý File Trong Python | How Kteam
-
Cách Chạy Chương Trình Python | How Kteam
-
Cách để Khởi Chạy Tập Tin Python Bằng Windows Command Prompt
-
Hướng Dẫn Chuyển File Python .PY Sang .EXE - YouTube
-
Thao Tác Với File Trong Python - Phan Nhật Chánh