Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python os.path.join: Hướng dẫn cho người mới bắt đầu

Phương thức os.path.join trong Python kết hợp một hoặc nhiều tên đường dẫn thành một đường dẫn duy nhất. Phương thức này thường dùng với các phương thức os như os.walk() để tạo đường dẫn cuối cùng cho tệp hoặc thư mục. os.path.join() tự động thêm các dấu gạch chéo cần thiết vào tên đường dẫn tệp.

Cách sử dụng Python os.path.join

Bạn có thể đã bị mắc kẹt trong " mê cung đường dẫn" khi làm việc với tệp trong Python.

Để làm việc với tệp, bạn cần chỉ định thư mục chứa tệp. Điều này dễ hơn nghe. Nếu không chỉ định đúng đường dẫn, chương trình sẽ không chạy.

Trong hướng dẫn này, chúng ta sẽ nói về os.path.join. Đây là phương thức kết hợp các thành phần của đường dẫn tệp thành một đường dẫn hoàn chỉnh. Chúng ta sẽ đi qua hai ví dụ để giúp bạn bắt đầu với phương thức này.

Cấu trúc của một đường dẫn tệp

Đường dẫn tệp là một chuỗi tên tệp và thư mục. Chuỗi tên này đưa bạn đến một vị trí cụ thể trên hệ điều hành (OS) của máy tính.

Hãy lấy ví dụ đường dẫn sau:

/Users/James/tutorials

Đường dẫn này đưa chúng ta đến thư mục tên "tutorials". Nếu muốn truy cập một tệp hoặc thư mục cụ thể trong thư mục này, chúng ta có thể trỏ đến nó bằng tên tệp:

/Users/James/tutorials/README.md

Bạn có thể viết các đường dẫn này thủ công trong Python. Việc đó có thể không thực tế. Đó là lúc os.path.join xuất hiện.

Python os.path.join là gì?

os.path.join kết hợp các tên đường dẫn thành một đường dẫn hoàn chỉnh. Nghĩa là bạn có thể gộp nhiều phần của đường dẫn thành một, thay vì hard-code (viết cứng) mọi tên đường dẫn thủ công.

Để dùng hàm này, bạn cần nhập thư viện os vào mã:

import os

Hãy xem cú pháp của phương thức os.path.join(). Hàm os.path.join chấp nhận một danh sách các đường dẫn bạn muốn gộp thành một:

os.path.join(path1, path2...)

path1, path2 và các giá trị tiếp theo đại diện cho các đường dẫn bạn muốn kết hợp thành một tên duy nhất.

path = os.path.join("/Users/James/tutorials", "index.html")
print(path)

Mã này trả về: /Users/James/tutorials/index.html. Phương thức os.path.join tiếp tục từ thành phần đường dẫn tuyệt đối chúng ta đã chỉ định ("/Users/James/tutorials"). Chúng ta thêm index.html vào cuối đường dẫn.

Tiện lợi thay, phương thức os.path.join chèn dấu gạch chéo (gọi là "phân cách thư mục") khi cần thiết. Điều này làm cho nó trở thành cách thuận tiện hơn để kết hợp tên đường dẫn tệp so với nối chuỗi thủ công.

Ví dụ Python os.path.join

Hãy kết hợp tên tệp index.html trong thư mục tutorials/web/. Tệp này nằm bên trong thư mục làm việc hiện tại.

Chúng ta sẽ bắt đầu bằng cách nhập thư viện os:

import os

Tiếp theo, lấy thư mục làm việc hiện tại để thêm tên đường dẫn tệp vào nó:

cwd = os.getcwd()

Điều này trả về thư mục làm việc hiện tại, là /Users/James/tutorials. Thư mục tutorials nằm trong thư mục home của người dùng. Chúng ta có thể dùng thông tin này để thêm tutorials/web vào cuối thư mục làm việc:

web_tutorials = os.path.join(cwd, "tutorials/web")
print(web_tutorials)

Mã này trả về: /Users/James/tutorials/web. Mã của chúng ta đã kết hợp các thành phần tên đường dẫn thành một. Dấu gạch chéo ("/") đã được thêm giữa các tên đường dẫn. Đường dẫn này tham chiếu đến thư mục web trong đường dẫn hiện có của chúng ta.

Python os.path.join: Liệt kê tệp

Hãy dùng phương thức os.path.join để trả về đường dẫn tệp đầy đủ của tất cả tệp trong một thư mục. Chúng ta sẽ liệt kê tất cả tệp trong thư mục Desktop trên hệ thống tệp. Thư mục này nằm trong thư mục /Users/James/ trên ổ đĩa.

Chúng ta sẽ bắt đầu bằng cách nhập thư viện os và xác định thư mục muốn tìm kiếm:

import os
cwd = os.getcwd()
desktop = os.path.join(cwd, "Desktop")

Mã này tạo đường dẫn tệp cho thư mục Desktop tương đối so với thư mục làm việc hiện tại. Tiếp theo, chúng ta có thể dùng phương thức os.listdir() của Python để lấy danh sách tất cả tệp trong thư mục này:

files = os.listdir(desktop)

Phương thức này trả về danh sách tên của tất cả tệp xuất hiện trong thư mục Desktop. Nó không bao gồm đường dẫn của các tệp. Bây giờ chúng ta đã có danh sách tệp, chúng ta có thể in tất cả ra bảng điều khiển. Chúng ta sẽ in đường dẫn tệp đầy đủ cho mỗi tệp dùng os.path.join và vòng lặp for của Python:

for f in files:
    print(os.path.join(desktop, f))

Mã này lặp qua tất cả tệp trong thư mục Desktop. Nó gộp tên mỗi tệp với tên đường dẫn của thư mục Desktop. Mã của chúng ta trả về:

/Users/James/Desktop/.DS_Store
/Users/James/Desktop/Notes.md
/Users/James/Desktop/To-dos.md

Có ba tệp trên máy tính để bàn: .DS_Store, Notes.md và To-dos.md. Chúng ta đã dùng os.path.join() để tạo đường dẫn đầy đủ của từng tệp.

Kết luận

Phương thức os.path.join kết hợp các thành phần trong tên đường dẫn để tạo tên đường dẫn đầy đủ.

Phương thức này giúp dễ dàng kết hợp hai hoặc nhiều thành phần của tên đường dẫn. os.path.join tự động chèn dấu gạch chéo ("/") vào tên đường dẫn khi cần.

Nếu bạn muốn tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem hướng dẫn How to Learn Python của chúng tôi.