如下面的程式碼,呼叫mplayer播放本地音訊文件,是否能夠透過p
取得到filepath
檔案中的資料?
p=subprocess.Popen(["mplayer",filepath],shell=False,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
filepath
也可能是url,需要其中的數據,但不想額外地再次存取這個位址。
-------補充-------
試著調試時跟進去過,想看看有沒有在調用mplayer之前獲取了文件內容,但是到了subprocess模組裡,單步驟調試不管用了,所以想知道是否在呼叫mplayer前subprocess模組已經拿到數據,如果是那就能取得這些數據了。
subprocess
只是一个调用命令的库, 它的stdin, stdout
也只是儲存命令輸出的結果, 如果你的命令, 在執行過程中, 有結果,有文本或者什麼別的輸出, 那麼可以獲取, 但是如果你說像解析這個音頻文件, 那應該是不行的, 或者你需要別的解析方式去解釋, 或者直接打開那個文件, 說不定也能得到你想要的感覺你想取得的是音訊資料的metadata,如實是MP3的話可以試試ID3這個函式庫。