Tôi có một mô-đun Python sử dụng một số tài nguyên trong thư mục con của thư mục mô-đun. Sau khi tìm kiếm xung quanh trên stack overflow và tìm câu trả lời liên quan, tôi quản lý để chỉ đạo các module để các nguồn lực bằng cách sử dụng một cái gì đó giống nhưLàm cách nào để sử dụng đường dẫn tương đối trong mô-đun Python khi CWD đã thay đổi?
import os
os.path.join(os.path.dirname(__file__), 'fonts/myfont.ttf')
này hoạt động tốt khi tôi gọi là mô-đun từ nơi khác, nhưng nó phá vỡ khi tôi gọi là mô-đun sau khi thay đổi thư mục làm việc hiện tại. Vấn đề là nội dung của __file__
là một đường dẫn tương đối, mà không đưa vào tài khoản thực tế là tôi đã thay đổi thư mục:
>>> mymodule.__file__
'mymodule/__init__.pyc'
>>> os.chdir('..')
>>> mymodule.__file__
'mymodule/__init__.pyc'
Làm thế nào tôi có thể mã hóa các đường dẫn tuyệt đối trong __file__
, hoặc chặn rằng, làm thế nào tôi có thể truy cập tài nguyên của mình trong mô-đun cho dù thư mục làm việc hiện tại là gì không? Cảm ơn!
Cảm ơn, hoạt động hoàn hảo! Tôi cũng sẽ giữ cho nhận xét của bạn trong tâm trí để tránh thay đổi thư mục làm việc. – jvkersch