Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

Phương thức os.path.join(a, b) sẽ tạo một kết thúc chuỗi mà không có '/' bất kể đó là tệp hoặc thư mục. Bây giờ, có cách nào (hoặc bất kỳ phương thức os.path nào khác) để có được '/' tự động cho trường hợp của thư mục không?

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

thư giãn

385K64 Huy hiệu vàng464 Huy hiệu bạc595 Huy hiệu Đồng64 gold badges464 silver badges595 bronze badges

Hỏi ngày 24 tháng 1 năm 2012 lúc 16:04Jan 24, 2012 at 16:04

Hailiang Zhanghailiang ZhangHailiang Zhang

16.5K23 Huy hiệu vàng67 Huy hiệu bạc114 Huy hiệu đồng23 gold badges67 silver badges114 bronze badges

0

Không có chức năng như vậy trong os.path. Mặc dù vậy, thật dễ dàng để tự mã hóa:

if os.path.isdir(path):
    path = os.path.join(path, "")

Điều này sẽ thêm / nếu đã không có một vào cuối path trong trường hợp nó chỉ vào một thư mục.

Đã trả lời ngày 24 tháng 1 năm 2012 lúc 16:06Jan 24, 2012 at 16:06

Sven Marnachsven MarnachSven Marnach

549K114 Huy hiệu vàng920 Huy hiệu bạc822 Huy hiệu Đồng114 gold badges920 silver badges822 bronze badges

Bạn có thể thêm dấu phân cách trong mã của mình như sau:

path = os.path.join(a,b)
if os.path.isdir(path):
    path += os.sep

Đã trả lời ngày 24 tháng 1 năm 2012 lúc 16:07Jan 24, 2012 at 16:07

1

Thêm các mục sau ở cuối tệp .bashrc:

Xuất Pythonpath = xông/home/kalyani/thư mục1

Ở đây, bạn có thể thêm đường dẫn mà bạn muốn.

Nhập khẩu sys

Frompprintimportpprint pprint import pprint

pprint(sys.path)(sys.path)

Đóng thiết bị đầu cuối và mở một thiết bị đầu cuối mới

Bây giờ, hãy thử thực hiện chương trình của bạn. Trong trường hợp của tôi, nó sẽ là như sau:

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

Khi viết các chương trình phức tạp bằng Python, cuối cùng chúng tôi sẽ thêm các mô -đun của bên thứ ba hoặc thậm chí tốt hơn, hãy tạo các mô -đun của riêng chúng tôi. Trong mọi trường hợp, chúng tôi không thể giữ mọi tệp Python mà chúng tôi tạo trong một thư mục, chúng tôi có thể muốn sử dụng nhiều thư mục để phân loại đầy đủ các tệp của chúng tôi. Tuy nhiên, vấn đề là chúng tôi có thể cần nhập các mô -đun được tạo bên trái và phải. Trong những trường hợp như vậy, nếu chúng tôi muốn ngăn chặn lỗi ModulenotFound, thì chúng tôi có thể thêm vị trí của thư mục - và quan tâm đến bạn, nó phải là một thư mục, không phải là một tệp - vào sys.path sử dụng sys.path.append ( ) phương pháp.

Mã hóa hạnh phúc!

Thông tin về các Tác giả

Tôi là một người yêu thích linux và mã.

main.pyfile1.py

Nhập tệp1 file1

print(file1.secret)(file1.secret)

bí mật = "Đây là cụm từ bí mật"= “This is the secret phrase”

Vì File1.py hoặc mô -đun của chúng tôi nằm trong thư mục làm việc, bạn sẽ có thể in thành công câu bí mật. Điều này là như vậy bởi vì khi trình thông dịch Python tìm kiếm mô -đun được yêu cầu, nó sẽ tìm kiếm trong thư mục làm việc trước và vì mô -đun của chúng tôi có tên File1 nằm trong thư mục làm việc, nó sẽ tự động in ra câu bí mật của chúng tôi.

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

Bây giờ, giả sử rằng tôi tạo một thư mục trong thư mục làm việc của mình có tên là Thư mục1 và đặt mô -đun của tôi có tên File1 trong đó.

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

Bây giờ, trong mô -đun File1 là cụm từ bí mật mà chúng tôi đang cố gắng in ra. Trong trường hợp này, nó sẽ không in ra cụm từ bí mật. Tại sao? Bởi vì thông dịch viên đang tìm kiếm trong thư mục trực tuyến1 cho bất kỳ mô -đun nào. Nói cách khác, thư mục làm việc hiện tại là một thành viên của danh sách sys.path nhưng thư mục1, không phải là thành viên của danh sách đó. Vì vậy, lỗi kết quả là lỗi mô -đun - nó không thể tìm thấy hoặc xác định vị trí mô -đun có tên File1.

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

Để ngăn chặn vấn đề này, bạn cần nói với trình thông dịch Python nơi tìm File1 mô -đun. Đây là nơi phương thức sys.path.append () xuất hiện.

Phương thức sys.path.append () được sử dụng để nối đường dẫn mà chúng tôi muốn vào danh sách hiện có.

Trên hệ thống Linux:

sys.path.Append (Hồi/path/to/drv)).path.append(“/path/to/dir)

Trên hệ thống Windows, bạn đã viết:

sys.path.append (Hồi C: \\ path \\ to \\ dir,).path.append(“C:\\path\\to\\dir)

Xin lưu ý rằng bạn không thể thêm bất kỳ tệp đã cho vào sys.Path, thay vào đó bạn có thể thêm các thư mục và sau đó nhập các tệp bạn muốn.

Ví dụ 1

Vì vậy, hãy để thử thử hoạt động trước đó (trong đó mô -đun File1 được đặt trong thư mục1) nhưng lần này, chúng tôi sẽ nối đường dẫn đến mô -đun File1 vào sys.Path bằng phương thức sys.Path.Append ().

main.pyfile1.py

Nhập khẩu sys

sys.path.append (‘C: \\ users \\ never \\ pycharmprojects \\\.path.append(‘C:\\Users\\never\\PycharmProjects\\

pythonproject1 \\ thư mục1)

Nhập tệp1 file1

print(file1.secret)(file1.secret)

bí mật = "Đây là cụm từ bí mật"= “This is the secret phrase”

Vì File1.py hoặc mô -đun của chúng tôi nằm trong thư mục làm việc, bạn sẽ có thể in thành công câu bí mật. Điều này là như vậy bởi vì khi trình thông dịch Python tìm kiếm mô -đun được yêu cầu, nó sẽ tìm kiếm trong thư mục làm việc trước và vì mô -đun của chúng tôi có tên File1 nằm trong thư mục làm việc, nó sẽ tự động in ra câu bí mật của chúng tôi.

Bây giờ, giả sử rằng tôi tạo một thư mục trong thư mục làm việc của mình có tên là Thư mục1 và đặt mô -đun của tôi có tên File1 trong đó.

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

Bây giờ, trong mô -đun File1 là cụm từ bí mật mà chúng tôi đang cố gắng in ra. Trong trường hợp này, nó sẽ không in ra cụm từ bí mật. Tại sao? Bởi vì thông dịch viên đang tìm kiếm trong thư mục trực tuyến1 cho bất kỳ mô -đun nào. Nói cách khác, thư mục làm việc hiện tại là một thành viên của danh sách sys.path nhưng thư mục1, không phải là thành viên của danh sách đó. Vì vậy, lỗi kết quả là lỗi mô -đun - nó không thể tìm thấy hoặc xác định vị trí mô -đun có tên File1.

Để ngăn chặn vấn đề này, bạn cần nói với trình thông dịch Python nơi tìm File1 mô -đun. Đây là nơi phương thức sys.path.append () xuất hiện.

main.py

Nhập khẩu sys

sys.path.append (‘C: \\ users \\ never \\ pycharmprojects \\\ pprint import pprint

pprint(sys.path)(sys.path)

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

pythonproject1 \\ thư mục1

Khi chúng tôi nối đường dẫn bằng phương thức sys.Path.append (), trước tiên chúng tôi nối vị trí của mô -đun vào đường dẫn, sau đó nhập nó. Nếu được thực hiện theo cách như vậy, trình thông dịch Python sẽ có thể xác định vị trí mô -đun được yêu cầu và do đó truy xuất biến bí mật.

main.py

Nhập khẩu sys

sys.path.append (‘C: \\ users \\ never \\ pycharmprojects \\\ pprint import pprint

pythonproject1 \\ thư mục1.path.append(‘/home/kalyani/directory1’)

pprint(sys.path)(sys.path)

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

Khi chúng tôi nối đường dẫn bằng phương thức sys.Path.append (), trước tiên chúng tôi nối vị trí của mô -đun vào đường dẫn, sau đó nhập nó. Nếu được thực hiện theo cách như vậy, trình thông dịch Python sẽ có thể xác định vị trí mô -đun được yêu cầu và do đó truy xuất biến bí mật.

Đầu ra của hoạt động trước đó như sau:

Ví dụ #2

Hãy cùng lấy một ví dụ khác, lần này là trên một máy Linux. Hãy giả sử rằng chúng ta có một tệp - main.py.

Frompprintimportpprint=’/path/to/dir

  1. Ở đây, sys.path [0] là trên mạng/home/kalyani, vì đó là nơi đặt Main.py.
  2. Bây giờ, hãy để sửa đổi tập lệnh một chút bằng cách sử dụng phương thức sys.Path.append (). Hãy để sử dụng phương pháp để nối một đường dẫn cụ thể (‘/home/kalyani/thư mục1,) vào sys.path.
  3. sys.path.append (‘/home/kalyani/thư mục1,)

    Vì vậy, phương thức sys.path.append () đã nối tiếp đường đến cuối danh sách hiện có! Ở đây, xin vui lòng lưu ý rằng việc nối tiếp được thực hiện ở cuối danh sách không ở đầu.=’/home/kalyani/directory1’

Pythonpath

  1. Có một vấn đề nhỏ bé với những gì chúng tôi vừa làm và đó là chúng tôi đã không đặt vị trí đó vĩnh viễn vào danh sách sys.path. Phương thức sys.path.append () được sử dụng để tạm thời thêm một đường dẫn và như vậy, đường dẫn đó sẽ có giá trị cho một phiên chẳng hạn. Nếu bạn muốn thay đổi vĩnh viễn danh sách sys.path, thì chúng ta có thể sử dụng PythonPath để thêm đường dẫn vào danh sách. Vì Sys.Path cũng xem xét Pythonpath, các vị trí được liệt kê sau đó sẽ được đưa vào danh sách các đường dẫn.
  2. Trên Linux:

main.py

Nhập khẩu sys

sys.path.append (‘C: \\ users \\ never \\ pycharmprojects \\\ pprint import pprint

pprint(sys.path)(sys.path)

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

pythonproject1 \\ thư mục1

Khi chúng tôi nối đường dẫn bằng phương thức sys.Path.append (), trước tiên chúng tôi nối vị trí của mô -đun vào đường dẫn, sau đó nhập nó. Nếu được thực hiện theo cách như vậy, trình thông dịch Python sẽ có thể xác định vị trí mô -đun được yêu cầu và do đó truy xuất biến bí mật.

Thông tin về các Tác giả

Hướng dẫn python append folder to path - python thêm thư mục vào đường dẫn

Tôi là một người yêu thích linux và mã.

PATH $ PATH trong Python là gì?

Pythonpath là một biến môi trường đặc biệt cung cấp hướng dẫn cho trình thông dịch Python về nơi tìm các thư viện và ứng dụng khác nhau.Nó tương tự như biến môi trường đường dẫn trong các ngôn ngữ khác, chẳng hạn như C và Java, nhưng có các thư mục bổ sung cho các mô -đun Python.a special environment variable that provides guidance to the Python interpreter about where to find various libraries and applications. It is similar to the PATH environment variable in other languages, such as C and Java, but has additional directories for Python modules.

Pythonpath có bao gồm thư mục hiện tại không?

Pythonpath / sys.path nên chứa thư mục hiện tại để các gói chứa các mô -đun được kiểm tra có thể được tìm thấy. path should contain the current directory so that packages containing modules to be tested can be found.

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

__file__ là một biến có chứa đường dẫn đến mô -đun hiện đang được nhập.Python tạo ra một biến __file__ cho chính nó khi nó sắp nhập một mô -đun.a variable that contains the path to the module that is currently being imported. Python creates a __file__ variable for itself when it is about to import a module.