Tên tệp hoặc thư mục có thể được sử dụng với đường dẫn đầy đủ hoặc chỉ đề cập đến tên tệp hoặc thư mục để sử dụng nó trong tập lệnh. Đường dẫn đầy đủ của tệp hoặc thư mục từ thư mục gốc được chỉ định bởi đường dẫn tuyệt đối. Khi tên tệp được sử dụng mà không có tên đường dẫn trong tập lệnh, thì Thư mục làm việc hiện tại được coi là tên đường dẫn của tệp và được gọi là đường dẫn tương đối. Trong Python, Thư mục làm việc hiện tại được đặt thành vị trí thư mục từ đó tập lệnh python thực thi. Nhiều mô-đun tồn tại trong python để lấy Thư mục làm việc hiện tại. Các cách truy xuất Thư mục làm việc hiện tại bằng cách sử dụng các mô-đun khác nhau trong Python đã được trình bày trong hướng dẫn này
Ví dụ 1. Sử dụng mô-đun pathlib để nhận Thư mục làm việc hiện tại
Lớp đường dẫn của mô-đun pathlib được sử dụng để đọc thư mục làm việc hiện tại của tập lệnh đang thực thi. Tạo tập lệnh python với mã sau để đọc và in thư mục làm việc hiện tại bằng mô-đun pathlib. Phương thức cwd[] của lớp Path được sử dụng để in thư mục làm việc hiện tại từ đó tập lệnh đang thực thi
# Nhập đường dẫn từ mô-đun pathlib
từ pathlib nhập Path
# Retrieve the path of current working directory
current_working_directory = Path.cwd[]
# In vị trí của thư mục làm việc hiện tại
print["The location of the current working directory is:"]
in[ current_working_directory ]
đầu ra
Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Ở đây, đường dẫn của thư mục làm việc hiện tại không có tên tập lệnh đã được hiển thị trong đầu ra
Ví dụ-2. Sử dụng Normpath[] và abspath[] để lấy Thư mục làm việc hiện tại
Sử dụng mô-đun os là một cách khác để truy xuất thư mục làm việc hiện tại. Các phương thức khác tồn tại trong lớp đường dẫn của mô-đun os để truy xuất thư mục làm việc hiện tại. Các phương thức Normpath[] và abspath[] là hai trong số chúng. Các phương thức này trả về thư mục làm việc hiện tại dưới dạng một chuỗi. Tạo một tệp python với tập lệnh sau để kiểm tra mục đích của các chức năng này
# Nhập mô-đun os
nhập os
# In thư mục làm việc hiện tại bằng hàm Normpath[]< . "
print["The current working directory [using normpath[]] is:"]
in[os . đường dẫn . tên thư mục[os . đường dẫn . đường dẫn chuẩn[ __file__ ]] . "]
# Print the current working directory using abspath[] function
print["\nThe current working directory [using abspath[]] is:"]
in[os . đường dẫn . đường tắt['. ']]
đầu ra
Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Ở đây, đường dẫn của thư mục làm việc hiện tại không có tên tập lệnh đã được hiển thị trong đầu ra
Ví dụ-3. Sử dụng realpath[] để lấy Thư mục làm việc hiện tại
realpath[] là một phương thức khác để truy xuất thư mục làm việc hiện tại. Tạo một tệp python với tập lệnh sau để in thư mục làm việc hiện tại với tên tập lệnh bằng cách sử dụng phương thức realpath[]. Trong tập lệnh, nó lấy __file__ làm giá trị đối số chứa tên đường dẫn của tệp mà mô-đun os được nhập vào
# Nhập mô-đun os
nhập os
# Đọc thư mục làm việc hiện tại bằng hàm realpath[]< .
real_path = os.đường dẫn . đường dẫn thực[ __file__ ]
# . "
print["\nThe current working directory with the script name is:"]
in[ real_path ]
đầu ra
Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Ở đây, đường dẫn của thư mục làm việc hiện tại với tên tập lệnh đã hiển thị trong đầu ra
Ví dụ-4. Sử dụng getcwd[] để lấy Thư mục làm việc hiện tại
Sử dụng hàm getcwd[] của mô-đun os là cách đơn giản nhất để truy xuất thư mục làm việc hiện tại của tập lệnh đang thực thi. Nó không chứa bất kỳ đối số nào và trả về CWD dưới dạng một chuỗi. Tạo một tệp python với tập lệnh sau để kiểm tra việc sử dụng hàm getcwd[]. Thư mục làm việc hiện tại được in ở đầu tập lệnh. Tiếp theo, đường dẫn thư mục hiện tại được thay đổi bằng cách sử dụng hàm chdir[]. Lệnh getcwd[] được gọi lại sau khi thay đổi thư mục
# Nhập mô-đun os
nhập os
# In thư mục làm việc hiện tại bằng hàm getcwd[]< .
print["The current working directory is:\n ", os . getcwd[]]
# .
os.chdir['/etc/mail']
# Print the current working directory after change
print["\nThe current working directory after change is:\n ", os . getcwd[]]
đầu ra
Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Ở đây, đường dẫn thư mục làm việc hiện tại không có tên tập lệnh đã được in trước khi thay đổi thư mục. Tiếp theo, đường dẫn thư mục thay đổi đã được in
Ví dụ-5. Sử dụng getcwd[] với try-ngoại trừ để lấy Thư mục làm việc hiện tại
Tạo tệp python với tập lệnh sau để thay đổi thư mục làm việc hiện tại dựa trên giá trị đầu vào và xử lý các loại lỗi khác nhau. Ba loại lỗi có thể được xử lý bằng cách thực thi tập lệnh. Lỗi FileNotFoundError sẽ được tạo nếu đường dẫn lấy từ đầu vào không tồn tại. Lỗi NotADirectoryError sẽ được tạo nếu đường dẫn lấy từ đầu vào không phải là thư mục. Lỗi PermissionError sẽ được tạo nếu đường dẫn lấy từ đầu vào không thể truy cập được
# Nhập mô-đun os
nhập os
# Nhập đường dẫn của thư mục
cwd = input["Enter the path of current working directory:\n "]
thử .
# Thay đổi thư mục làm việc hiện tại
os.chdir[ cwd ]
< . # Print the current working directory using getcwd[] function
print["The current working directory is:\n ", os . getcwd[]]
# .
except FileNotFoundError:
print["Thư mục không tồn tại. "]
# Tăng lỗi nếu đường dẫn đầu vào không phải là thư mục
ngoại trừ .
print["%s không phải là thư mục" %[cwd]]
# Raise error if the directory is not accessible
except PermissionError:
print["Quyền thay đổi thư mục bị từ chối. "]
đầu ra
Đầu ra sau sẽ xuất hiện sau khi thực thi đoạn script trên nếu đường dẫn tồn tại. Ở đây, đường dẫn đầu vào đã tồn tại và thư mục làm việc đã thay đổi đã được in ở đầu ra
Đầu ra sau sẽ xuất hiện sau khi thực thi đoạn script trên nếu đường dẫn không tồn tại
Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trên nếu không thể truy cập đường dẫn đã chọn
Phần kết luận
Việc sử dụng các mô-đun pathlib và os để đọc thư mục làm việc hiện tại được hiển thị trong hướng dẫn này bằng cách sử dụng các ví dụ khác nhau. Cách truy xuất thư mục làm việc hiện tại sau khi thay đổi thư mục làm việc hiện tại dựa trên đầu vào của người dùng cũng đã được trình bày trong hướng dẫn này