Có cách nào để thực hiện cuộc gọi subprocess trong python "persistent" không? Tôi đang gọi một chương trình mất nhiều thời gian để tải nhiều lần. Vì vậy, nó sẽ là tuyệt vời nếu tôi chỉ có thể rời khỏi chương trình đó mở và giao tiếp với nó mà không giết chết nó.Quy trình con trăn liên tục
Phiên bản phim hoạt hình của kịch bản python của tôi trông như thế này:
for text in textcollection:
myprocess = subprocess.Popen(["myexecutable"],
stdin = subprocess.PIPE, stdout = subprocess.PIPE,
stderr = None)
myoutputtext, err = myprocess.communicate(input=text)
tôi cần phải xử lý từng văn bản riêng biệt, vì vậy khi tham gia tất cả vào một tập tin văn bản lớn và xử lý nó một lần không phải là một lựa chọn.
Tốt, nếu có một lựa chọn như thế này
myprocess = subprocess.Popen(["myexecutable"],
stdin = subprocess.PIPE, stdout = subprocess.PIPE,
stderr = None) for text in textcollection:
for text in textcollection:
myoutputtext, err = myprocess.communicate(input=text)
nơi tôi có thể rời khỏi quá trình mở, tôi thực sự đánh giá cao nó.
Cảm ơn! Tôi thích giải pháp của bạn tốt nhất vì nó không yêu cầu tải xuống của bên thứ ba. Thật không may, nó không làm việc cho tôi. Sau khi thử một vài điều, tôi khá chắc chắn đó là một vấn đề với chương trình java tôi gọi thay vì giải pháp của bạn, vì vậy giải pháp của bạn là tốt. – JasonMond
Tại sao bỏ phiếu xuống? –
Điều này là do nhầm lẫn. Upvote của tôi là không hoạt động cho đến khi bất cứ điều gì sẽ được chỉnh sửa, nhưng tôi không thấy bất cứ điều gì để cải thiện hoặc không bị tổn thương. Câu trả lời hoàn hảo. – hynekcer