Python lấy đường dẫn hiện tại của tập lệnh

Khái niệm về Thư mục làm việc hiện tại [CWD] rất quan trọng ở đây. Bạn có thể coi nó như thư mục mà Python của bạn đang hoạt động bên trong vào lúc này. Cho đến nay chúng tôi đã sử dụng đường dẫn tuyệt đối, bắt đầu từ thư mục trên cùng. Nhưng nếu tham chiếu tệp của bạn không bắt đầu từ đầu [e. g. , 'alice. txt', 'ling1330/alice. txt'], Python giả định rằng nó bắt đầu trong CWD [một "đường dẫn tương đối"]

Điều này có nghĩa là tham chiếu chỉ có tên sẽ chỉ thành công khi tệp nằm trong CWD Python của bạn. Nhưng hãy nhớ rằng CWD của bạn có thể thay đổi. Ngoài ra, Python của bạn có các cài đặt CWD ban đầu khác nhau tùy thuộc vào việc bạn đang làm việc với tập lệnh Python hay trong môi trường shell

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

Thư mục tập lệnh Python của tôi ở đâu?

Nhập 'Python' vào Thanh tìm kiếm của Windows. Nhấp chuột phải vào Ứng dụng Python, sau đó chọn “Mở vị trí tệp“ Nhấp chuột phải vào phím tắt Python, sau đó chọn Thuộc tính. Nhấp vào “Mở vị trí tệp“

__ tệp __ trong Python là gì?

__file__ là biến chứa đường dẫn đến mô-đun hiện đang được nhập . Python tạo một biến __file__ cho chính nó khi nó chuẩn bị nhập một mô-đun. Việc cập nhật và duy trì biến này là trách nhiệm của hệ thống nhập khẩu.

Làm cách nào để đọc đường dẫn tệp trong Python?

Lấy đường dẫn của tệp hiện tại [tập lệnh] bằng Python. __file__ .
hệ điều hành. getcwd[] và __file__
Lấy tên tệp và thư mục của tệp tập lệnh hiện tại
Nhận đường dẫn tuyệt đối của tệp tập lệnh hiện tại
Đọc các tệp khác dựa trên vị trí của tệp tập lệnh hiện tại

Chủ Đề