簡體   English   中英

Python子進程,在定時延遲后終止進程

[英]Python subprocess, kill process after timed delay

我是第一次使用Python和Raspberry Pi(這是Pi 2),並試圖觸發一組定時命令。 除了最后階段(我想終止所有進程)外,我已經弄清了大部分內容。

邏輯如下:

-觸發名為“倒數”的音頻文件(.wav)

-觸發另一個名為“ dixie”的音頻文件(.wav)

-在dixie播放時觸發wget命令以觸發相機上的照片

-繼續播放“ dixie”,直到上一個wget完成執行

-wget完成執行后,停止播放“ dixie”

-觸發名為“掌聲”的最終音頻文件(.wav)

- 停止所有音頻

本質上,wget是重要的,播放音頻文件只是為了在我的相機拍攝照片時創造音樂。 當wget完成並且掌聲結束時,我想殺死所有音頻,但是“ dixie”的subprocess.Popen命令繼續播放(大約40秒長)。 我如何才能結束這個過程?

到目前為止,這是我的代碼:

import os
import time
import subprocess

subprocess.call(["aplay countdown.wav"], shell=True)
subprocess.Popen(["aplay dixie.wav"], shell=True)
subprocess.call(["wget 'http://10.5.5.9/camera/SH?t=12345678&p=%01' -O-"], shell=True)
time.sleep(5)
subprocess.call(["aplay applause.wav"], shell=True)
subprocess.Popen.kill(["aplay dixie.wav"], shell=True)

我要在“掌聲”播放完畢后殺死“ dixie”。

我的代碼產生錯誤:

"unbound method kill() must be called with Popen instance as first
argument (got list instance instead)"

有什么建議嗎?

我建議這樣做:

proc = subprocess.Popen(["aplay dixie.wav"], shell=True)

# do something 

proc.terminate()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM