Đường dẫn file trong python - Cách lấy tên file, thư mục, đường dẫn

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.