Làm cách nào để tạo một tệp python để chạy một tệp khác?
Ví dụ tôi có hai tệp .py. Tôi muốn một tệp được chạy, và sau đó để nó chạy tệp .py khác.
wj127
1181 Huy hiệu bạc12 Huy hiệu đồng1 silver badge12 bronze badges
Đã hỏi ngày 2 tháng 11 năm 2011 lúc 1:29Nov 2, 2011 at 1:29
Nathan Tornquistnathan TornquistNathan Tornquist
6.22810 Huy hiệu vàng46 Huy hiệu bạc72 Huy hiệu đồng10 gold badges46 silver badges72 bronze badges
4
Có nhiều hơn một vài cách. Tôi sẽ liệt kê chúng theo thứ tự ưu tiên đảo ngược [tức là, tốt nhất trước, tồi tệ nhất cuối cùng]:
- Đối xử với nó như một mô -đun:
0. Điều này là tốt vì nó an toàn, nhanh chóng và có thể bảo trì. Mã được sử dụng lại như được cho là phải thực hiện. Hầu hết các thư viện Python chạy bằng nhiều phương thức trải dài trên nhiều tệp. Rất khuyến khích. Lưu ý rằng nếu tệp của bạn được gọi là#!/usr/bin/python print["hello"]
1,#!/usr/bin/python print["hello"]
2 của bạn không nên bao gồm tiện ích mở rộng#!/usr/bin/python print["hello"]
3 ở cuối.#!/usr/bin/python print["hello"]
0. This is good because it's secure, fast, and maintainable. Code gets reused as it's supposed to be done. Most Python libraries run using multiple methods stretched over lots of files. Highly recommended. Note that if your file is called#!/usr/bin/python print["hello"]
1, your#!/usr/bin/python print["hello"]
2 should not include the#!/usr/bin/python print["hello"]
3 extension at the end.#!/usr/bin/python print["hello"]
- Lệnh thực thi khét tiếng [và không an toàn]: không an toàn, hacky, thường là câu trả lời sai. Tránh nếu có thể. Insecure, hacky, usually the wrong answer. Avoid where possible.
4 trong Python 2#!/usr/bin/python print["hello"]
5 trong Python 3#!/usr/bin/python print["hello"]
- Spawn một quy trình vỏ:
6. Sử dụng khi tuyệt vọng.#!/usr/bin/python print["hello"]
6. Use when desperate.#!/usr/bin/python print["hello"]
Đã trả lời ngày 2 tháng 11 năm 2011 lúc 3:27Nov 2, 2011 at 3:27
20
Nhận một tệp Python để chạy một tệp khác, sử dụng Python 2.7.3 và Ubuntu 12.10:
Đặt cái này vào Main.py:
#!/usr/bin/python import yoursubfile
Đặt cái này vào của bạn
#!/usr/bin/python print["hello"]
Chạy nó:
python main.py
Nó in:
hello
Do đó
#!/usr/bin/python
print["hello"]
7 chạy #!/usr/bin/python
print["hello"]
8Có 8 cách để trả lời câu hỏi này, một câu trả lời kinh điển hơn ở đây: Làm thế nào để nhập các tệp Python khác?
Jonathan
6.4197 Huy hiệu vàng47 Huy hiệu bạc68 Huy hiệu Đồng7 gold badges47 silver badges68 bronze badges
Đã trả lời ngày 8 tháng 12 năm 2013 lúc 18:14Dec 8, 2013 at 18:14
Eric Leschinskieric LeschinskiEric Leschinski
141K93 Huy hiệu vàng406 Huy hiệu bạc331 Huy hiệu Đồng93 gold badges406 silver badges331 bronze badges
7
Tôi đã sử dụng quy trình phụ
from subprocess import call
call[["python", "your_file.py"]]
Đã trả lời ngày 12 tháng 7 năm 2017 lúc 3:38Jul 12, 2017 at 3:38
6
- Bạn có thể chạy tệp .py của mình chỉ bằng mã này:
import os
os.system['python filename.py']
Lưu ý: Đặt tệp vào cùng thư mục của tệp Python chính của bạn.
Đã trả lời ngày 23 tháng 1 năm 2016 lúc 19:46Jan 23, 2016 at 19:46
AyserayserAyser
97511 Huy hiệu bạc15 Huy hiệu Đồng11 silver badges15 bronze badges
4
Bạn có thể sử dụng tập lệnh này:
def run[runfile]:
with open[runfile,"r"] as rnf:
exec[rnf.read[]]
Syntax:
run["file.py"]
Đã trả lời ngày 16 tháng 4 năm 2017 lúc 15:26Apr 16, 2017 at 15:26
4
Bạn sẽ coi một trong các tệp như một mô -đun Python và làm cho tệp khác nhập nó [giống như bạn nhập các mô -đun Python tiêu chuẩn]. Sau đó có thể tham khảo các đối tượng [bao gồm các lớp và chức năng] được xác định trong mô -đun đã nhập. Mô -đun cũng có thể chạy bất kỳ mã khởi tạo nào nó cần. Xem //docs.python.org/tutorial/modules.html
Đã trả lời ngày 2 tháng 11 năm 2011 lúc 1:37Nov 2, 2011 at 1:37
Adam Zalcmanadam ZalcmanAdam Zalcman
26.3k4 Huy hiệu vàng70 Huy hiệu bạc92 Huy hiệu Đồng4 gold badges70 silver badges92 bronze badges
Nó có thể được gọi là
#!/usr/bin/python
print["hello"]
9 từ tập lệnh chính như dưới đây:#!/usr/bin/python
import abc
#!/usr/bin/python
print["hello"]
9 có thể là một cái gì đó như thế này:print'abc'
Lioness100
8.0606 Huy hiệu vàng15 Huy hiệu bạc47 Huy hiệu đồng6 gold badges15 silver badges47 bronze badges
Đã trả lời ngày 1 tháng 6 năm 2017 lúc 19:19Jun 1, 2017 at 19:19
1