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.
Cách lấy đường dẫn tới file trong python
Để lấy đường dẫn đến một file trong Python, bạn có thể sử dụng hàm os.path.abspath
của thư viện os
. Hàm này sẽ trả về đường dẫn đầy đủ tới file đó trên hệ thống tệp của bạn.
Ví dụ:
import os
# Lấy đường dẫn đầy đủ tới file example.txt
file_path = os.path.abspath['example.txt']
print[file_path]
Kết quả in ra màn hình sẽ là đường dẫn đầy đủ tới file example.txt
, ví dụ như /home/user/documents/example.txt
.
Để lấy chỉ đường dẫn đến thư mục chứa file, bạn có thể sử dụng hàm os.path.dirname
. Ví dụ:
import os
# Lấy đường dẫn đầy đủ tới file example.txt
file_path = os.path.abspath['example.txt']
# Lấy chỉ đường dẫn đến thư mục chứa file
directory = os.path.dirname[file_path]
print[directory]
Kết quả in ra màn hình sẽ là đường dẫn đến thư mục chứa file example.txt
, ví dụ như /home/user/documents
.
Cách lấy đuôi file [phần mở rộng] trong python
Để lấy duôi tập tin trong Python, bạn có thể sử dụng hàm os.path.splitext[]
. Hàm này trả về một tuple gồm tên tập tin và duôi tập tin của một đường dẫn tập tin. Ví dụ:
import os
filename = '/path/to/file.txt'
# Lấy duôi tập tin
file_ext = os.path.splitext[filename][1]
print[file_ext] # '.txt'
Bạn cũng có thể sử dụng hàm os.path.basename[]
để lấy tên tập tin và sau đó sử dụng hàm str.rsplit[]
để lấy duôi tập tin. Ví dụ:
import os
filename = '/path/to/file.txt'
# Lấy tên tập tin
base = os.path.basename[filename]
# Lấy duôi tập tin
file_ext = base.rsplit['.', 1][1]
print[file_ext] # 'txt'
Lưu ý rằng cách trên chỉ hoạt động đúng khi tên tập tin chỉ có một dấu chấm. Nếu tên tập tin có nhiều hơn một dấu chấm, cách trên sẽ không hoạt động đúng. Ví dụ, nếu tên tập tin là file.tar.gz
, cách trên sẽ trả về gz
thay vì tar.gz
.
Để giải quyết vấn đề này, bạn có thể sử dụng hàm os.path.splitext[]
với tham số maxsplit
để chỉ định số lần phân tách tối đa.
Cách lấy đuôi file có hơn 1 đấu chấm
Để lấy tên tập tin có nhiều hơn một dấu chấm trong Python, bạn có thể sử dụng hàm os.path.splitext
trong thư viện os
. Hàm này sẽ tách tên tập tin và phần mở rộng của tập tin ra thành hai phần riêng biệt.
Ví dụ:
import os
filename = "my_file.txt.zip"
name, extension = os.path.splitext[filename]
print[name] # Output: "my_file.txt"
print[extension] # Output: ".zip"
Bạn cũng có thể sử dụng phép cắt chuỗi [string slicing] để lấy tên tập tin từ chuỗi đầy đủ của tên tập tin. Ví dụ:
filename = "my_file.txt.zip"
name = filename[:filename.rindex["."]]
print[name] # Output: "my_file.txt"
Trong đoạn mã trên, chúng ta sử dụng phép cắt chuỗi để lấy phần từ đầu đến vị trí cuối cùng của dấu chấm .
trong tên tập tin.