Giả sử tôi có tệp foo.py và trong tệp tôi muốn thực thi tệp bar.py. Tuy nhiên, bar.py không nằm trong cùng thư mục với foo.py, nó nằm trong thư mục con gọi là baz. Liệu execfile
có hoạt động không? Điều gì về os.system
?Làm thế nào để chạy một tệp Python không có trong thư mục từ một tệp Python khác?
Trả lời
Chỉ cần thêm một __init__.py
tập tin trống để báo hiệu baz
là một mô-đun và từ foo.py
làm:
from baz import bar
Trừ khi, tất nhiên, bạn có một lý do chính đáng để không làm baz
thành một mô-đun (và sử dụng execfile).
Câu hỏi ngụ ý rằng bạn muốn chạy chúng dưới dạng tập lệnh, vì vậy có: bạn có thể sử dụng execfile trong 2.X hoặc subprocess (gọi cho thông dịch viên và chuyển đoạn mã làm đối số). Bạn chỉ cần cung cấp đường dẫn tuyệt đối cho các tệp.
# Python 2.X only!
execfile ('c:/python/scripts/foo/baz/baz.py')
Thực hiện điều đó nghĩa là dễ vỡ, tất nhiên. Nếu baz luôn luôn là một subirectory của foo bạn có thể lấy nó từ tập tin foo của:
baz_dir = os.path.join(os.path.dirname(__file__), "baz")
baz_file = os.path.join(baz_dir, "baz.py")
execfile(baz_file)
Nếu cả hai tập tin nằm trong vị trí có thể được nhìn thấy bởi python của bạn - ví dụ, các thư mục trong sys.path hoặc đã được thêm vào đường dẫn tìm kiếm bằng cách sử dụng site bạn có thể nhập baz từ foo và gọi trực tiếp chức năng của nó. Nếu bạn cần thực sự hành động dựa trên thông tin từ baz, thay vì chỉ kích hoạt một hành động, đây là một cách tốt hơn để đi. As long as there is an init.py in each folder Bạn chỉ có thể làm
import baz
baz.do_a_function_defined_in_baz()
import sys, thay đổi "sys.path" bằng cách thêm các con đường trong thời gian chạy, sau đó nhập các module sẽ giúp
- 1. Python: execfile từ thư mục làm việc của tệp khác?
- 2. Làm thế nào để tôi nói một tệp từ thư mục bằng Python?
- 3. tệp zip python, làm cách nào để biết một mục là một thư mục?
- 4. Không nhập khẩu python từ một thư mục khác
- 5. nhập tệp từ thư mục khác
- 6. Trong python, tạo một tempfile trong cùng thư mục với một tệp khác?
- 7. VBA để sao chép tệp từ một thư mục này sang một thư mục khác
- 8. Làm cách nào để trích xuất một tệp từ tar sang một thư mục khác?
- 9. Python: Đưa tệp vào lưu trữ không có thư mục?
- 10. Làm cách nào để đọc số lượng tệp trong một thư mục bằng Python?
- 11. gzip một tệp trong Python
- 12. đọc một tệp trong python
- 13. Tạo tệp và thư mục qua Python
- 14. Làm cách nào để xóa các tệp trong thư mục được sao chép từ một thư mục khác?
- 15. Làm cách nào để sao chép các tệp của tôi từ một thư mục này sang một thư mục khác?
- 16. Tôi làm cách nào để nén một thư mục và gửi email tệp nén bằng Python?
- 17. Đọc từ một tệp gzip trong python
- 18. Làm cách nào để biên dịch và chạy một lớp Java trong một thư mục khác?
- 19. Sửa đổi tập lệnh python để chạy trên mọi tệp trong thư mục
- 20. Làm thế nào để xóa tất cả các tệp trong thư mục trên máy chủ từ xa trong python?
- 21. Làm thế nào để biên dịch tất cả các tệp py thành tệp pyc trong một thư mục bằng cách viết một tập lệnh python?
- 22. Làm thế nào để kiểm tra đơn vị python luôn tìm thấy tệp dữ liệu thử nghiệm khi chạy từ các thư mục làm việc khác nhau?
- 23. Làm cách nào để sao chép nhiều tệp từ một thư mục khác bằng cp?
- 24. Làm cách nào để liệt kê tất cả các tệp tga trong một thư mục (không đệ quy) trong Python?
- 25. Chạy các tệp Jar từ Python
- 26. Làm thế nào để sao chép hiệu quả tất cả các tệp từ một thư mục này sang thư mục khác trong thùng chứa aazon S3 bằng boto?
- 27. Làm thế nào để nhập khẩu một dự án Django settings.py tập tin Python từ một thư mục con?
- 28. Python - Làm cách nào để bạn chạy tệp .py?
- 29. Làm thế nào để bạn nhập một tệp trong python có dấu cách trong tên?
- 30. Python - sao chép một tệp
Cảm ơn bạn, tôi đang làm việc trên quyền này hiện nay. – user1938464