Cách chạy nhiều tệp Python đồng thời
Tôi có ba tệp pop.py pop1.py pop2.py Tôi muốn chạy tệp này đồng thời các tệp này đang được chạy từng mã một mã Python để chạy tất cả các tệp
Đã hỏi ngày 20 tháng 12 năm 2018 lúc 9:16Dec 20, 2018 at 9:16
2
Bạn có thể dễ dàng thực hiện điều này với mô -đun phụ.
import subprocess
process1 = subprocess.Popen[["python", "pop.py"]] # Create and launch process pop.py using python interpreter
process2 = subprocess.Popen[["python", "pop1.py"]]
process3 = subprocess.Popen[["python", "pop2.py"]]
process1.wait[] # Wait for process1 to finish [basically wait for script to finish]
process2.wait[]
process3.wait[]
Đã trả lời ngày 20 tháng 12 năm 2018 lúc 9:42Dec 20, 2018 at 9:42
2
Nó phải là một giải pháp Python? Với vấn đề như đã nêu, có thể dễ dàng nhất là chỉ cần bắt đầu cả ba trong bash:
python pop.py &
python pop1.py &
python pop2.py &
wait # wait for all three to finish, if needed
Trong khi giải pháp này chạy chúng đồng thời, bạn nên nghĩ về lý do tại sao bạn muốn chúng đồng thời. Bạn đang cố gắng song song với tính toán của mình? Các quy trình có giao tiếp không [ví dụ: mô hình sản xuất/người tiêu dùng]? Có sự phụ thuộc nào giữa họ không? Trong tất cả, nhưng các trường hợp đơn giản nhất, bạn thường sẽ được phục vụ tốt hơn bằng cách kết hợp cả ba mô -đun Python với nhau thành gói Python và thêm một số mã chạy nhập cả ba, bắt đầu làm một chủ đề [xem câu trả lời của Oren Reve -Truyền thông xử lý.
Đã trả lời ngày 20 tháng 12 năm 2018 lúc 9:54Dec 20, 2018 at 9:54
Quantum7Quantum7Quantum7
3.0272 Huy hiệu vàng33 Huy hiệu bạc45 Huy hiệu Đồng2 gold badges33 silver badges45 bronze badges
Tôi sẽ khuyên bạn nên đọc về luồng trong Python. Bạn nên nghĩ về việc sắp xếp lại mã của bạn trong một tệp.
Mã giả
import threading
class Pop[threading.Thread]:
def run[self]:
# Content from "pop.py"
# Maybe some some changes are needed
class Pop1[threading.Thread]:
def run[self]:
# Content from "pop1.py"
# ...
pop = Pop[]
pop1 = Pop1[]
# ...
pop.start[]
pop1.start[]
# ...
Đã trả lời ngày 20 tháng 12 năm 2018 lúc 10:00Dec 20, 2018 at 10:00
Sven Krügersven KrügerSven Krüger
1.22710 huy hiệu bạc18 Huy hiệu đồng10 silver badges18 bronze badges
import test1,test2
from threading import Thread
Thread[target=test2.main].start[]
Thread[target=test1.main].start[]
Tập lệnh này chạy Test1.py và Test2.py đồng thời. Hi vọng điêu nay co ich.
Đã trả lời ngày 6 tháng 9 năm 2019 lúc 6:40Sep 6, 2019 at 6:40
1
Tạo hàm Main [] trong mỗi tệp Python và sau đó nhập tất cả các tệp trong tệp chính của bạn. Sau đó gọi tất cả các chức năng chính.
from . import pop
from . import pop1
# and so on
# and now call all main functions
pop.main[]
pop1.main[]
# and so on
Đã trả lời ngày 20 tháng 12 năm 2018 lúc 11:38Dec 20, 2018 at 11:38
CRODEVCRODEVcrodev
1.1576 huy hiệu vàng19 Huy hiệu bạc37 Huy hiệu đồng6 gold badges19 silver badges37 bronze badges
Tạo một tệp shell như thế nàyShell file like this
python pop.py
python pop1.py
python pop2.py
và chạy tập tin .sh. .sh chạy nhiều tệp từng cái một.sh file. .sh Run multiple file one by one
Đã trả lời ngày 20 tháng 12 năm 2018 lúc 9:49Dec 20, 2018 at 9:49
1
Đôi khi bạn có thể cần phải chạy nhiều tệp Python từng cái này từng lần khác. Có nhiều hướng khác nhau để làm điều đó. Trong bài viết này, chúng tôi sẽ tìm hiểu các cách khác nhau để chạy nhiều tệp python có trong thư mục.
Hãy để chúng tôi nói rằng bạn có các tệp Python sau a.py, B.Py và C.Py.
#file a.py print["a"] #file b.py print["b"] #file c.py print["c"]
Bây giờ chúng tôi sẽ xem xét các cách khác nhau để chạy nhiều tệp Python.
1. Sử dụng dấu nhắc thiết bị đầu cuối/lệnh
Cách đơn giản nhất để chạy các tệp này lần lượt là đề cập đến chúng từng cái một, sau lệnh Python.
$ python a.py b.py c.py a b c
2. Sử dụng script shell
Bạn cũng có thể tạo một bài kiểm tra script shell.sh. vì mục đích này.
$ vi test.sh
Thêm các dòng sau vào nó.
file_list=["/home/ubuntu/a.py" "/home/ubuntu/b.py" "/home/ubuntu/c.py"] for py_file in "${file_list[@]}" do python ${py_file} done
Lưu và đóng tập tin. Làm cho nó một thực thi với lệnh sau.
python pop.py &
python pop1.py &
python pop2.py &
wait # wait for all three to finish, if needed
0Trong mã trên, chúng tôi duy trì các đường dẫn đầy đủ đến 3 tệp trong một mảng file_list. Sau đó, chúng tôi chạy một vòng lặp để đi qua mảng này và gọi lệnh Python để chạy từng tệp. Chúng tôi sử dụng các đường dẫn đầy đủ để đảm bảo rằng tập lệnh shell chạy từ bất kỳ vị trí nào.
3. Sử dụng nhập khẩu
Trong trường hợp này, bạn chỉ cần nhập mô -đun HĐH vào một tệp Python khác và chạy chúng bằng hàm Os.System.
python pop.py &
python pop1.py &
python pop2.py &
wait # wait for all three to finish, if needed
1Ngoài ra, bạn cũng có thể nhập 3 tệp vào một tệp Python khác và chạy các chức năng của chúng từ tệp này. Hãy để chúng tôi nói 3 tệp Python của bạn a.py, B.Py và C.Py có các hàm fa [], fb [] và fc [] tương ứng.
python pop.py &
python pop1.py &
python pop2.py &
wait # wait for all three to finish, if needed
2Bạn có thể tạo một tệp Python thứ tư d.py trong cùng một thư mục với 3 tệp Python khác, nhập 3 tệp Python khác và chạy các chức năng của chúng, như được hiển thị bên dưới.
python pop.py &
python pop1.py &
python pop2.py &
wait # wait for all three to finish, if needed
3Trong bài viết này, chúng tôi đã học được cách chạy nhiều tệp Python.
Cũng đọc:
Cách hợp nhất các tệp PDF bằng Pythonhow để thực hiện sao lưu gia tăng trong mysqlhow để chuyển mật khẩu ssh trong shell scriptMysql thay đổi lưu trữ bảng từ innodb sang myisamhow để cài đặt phông chữ trong ubuntu
How to Do
Incremental Backup in MySQL
How to Pass SSH Password in Shell Script
MySQL Change Table Storage from InnoDB to MyISAM
How to Install Fonts in Ubuntu