python - subprocess模塊怎樣返回執(zhí)行文件內(nèi)容?
問(wèn)題描述
如下面的代碼,調(diào)用mplayer播放本地音頻文件,是否能夠通過(guò)p獲取到filepath文件中的數(shù)據(jù)?
p=subprocess.Popen(['mplayer',filepath],shell=False,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
filepath也可能是個(gè)url,需要其中的數(shù)據(jù),但是不想額外地再次訪問(wèn)這個(gè)地址。-------補(bǔ)充-------試著調(diào)試時(shí)跟進(jìn)去過(guò),想看看有沒(méi)有在調(diào)用mplayer前獲取了文件內(nèi)容,但是到了subprocess模塊里,單步調(diào)試不管用了,所以想知道是否在調(diào)用mplayer前subprocess模塊已經(jīng)拿到數(shù)據(jù),如果是那就能獲取這些數(shù)據(jù)了。
問(wèn)題解答
回答1:subprocess只是一個(gè)調(diào)用命令的庫(kù), 它的stdin, stdout也只是儲(chǔ)存 命令輸出的 結(jié)果, 如果你的命令, 在執(zhí)行過(guò)程中, 有結(jié)果,有文本或者什么別的輸出, 那么可以獲取, 但是如果你說(shuō)像解析這個(gè)音頻文件, 那應(yīng)該是不行的, 或者你需要?jiǎng)e的解析方式去解釋, 或者直接打開(kāi)那個(gè)文件, 說(shuō)不定也能得到你想要的
回答2:感覺(jué)你想獲取的是音頻數(shù)據(jù)的metadata,如實(shí)是MP3的話可以試試ID3這個(gè)庫(kù)。
相關(guān)文章:
1. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件2. 關(guān)于mysql聯(lián)合查詢一對(duì)多的顯示結(jié)果問(wèn)題3. 實(shí)現(xiàn)bing搜索工具urlAPI提交4. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)5. 數(shù)據(jù)庫(kù) - Mysql的存儲(chǔ)過(guò)程真的是個(gè)坑!求助下面的存儲(chǔ)過(guò)程哪里錯(cuò)啦,實(shí)在是找不到哪里的問(wèn)題了。6. windows誤人子弟啊7. 冒昧問(wèn)一下,我這php代碼哪里出錯(cuò)了???8. 如何用筆記本上的apache做微信開(kāi)發(fā)的服務(wù)器9. 我在網(wǎng)址中輸入localhost/abc.php顯示的是not found是為什么呢?10. mysql優(yōu)化 - MySQL如何為配置表建立索引?
