python - subprocess模塊怎樣返回執(zhí)行文件內(nèi)容?
問題描述
如下面的代碼,調(diào)用mplayer播放本地音頻文件,是否能夠通過p獲取到filepath文件中的數(shù)據(jù)?
p=subprocess.Popen(['mplayer',filepath],shell=False,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
filepath也可能是個(gè)url,需要其中的數(shù)據(jù),但是不想額外地再次訪問這個(gè)地址。-------補(bǔ)充-------試著調(diào)試時(shí)跟進(jìn)去過,想看看有沒有在調(diào)用mplayer前獲取了文件內(nèi)容,但是到了subprocess模塊里,單步調(diào)試不管用了,所以想知道是否在調(diào)用mplayer前subprocess模塊已經(jīng)拿到數(shù)據(jù),如果是那就能獲取這些數(shù)據(jù)了。
問題解答
回答1:subprocess只是一個(gè)調(diào)用命令的庫, 它的stdin, stdout也只是儲(chǔ)存 命令輸出的 結(jié)果, 如果你的命令, 在執(zhí)行過程中, 有結(jié)果,有文本或者什么別的輸出, 那么可以獲取, 但是如果你說像解析這個(gè)音頻文件, 那應(yīng)該是不行的, 或者你需要?jiǎng)e的解析方式去解釋, 或者直接打開那個(gè)文件, 說不定也能得到你想要的
回答2:感覺你想獲取的是音頻數(shù)據(jù)的metadata,如實(shí)是MP3的話可以試試ID3這個(gè)庫。
相關(guān)文章:
1. mysql 查詢身份證號字段值有效的數(shù)據(jù)2. 請教使用PDO連接MSSQL數(shù)據(jù)庫插入是亂碼問題?3. 視頻文件不能播放,怎么辦?4. flask - python web中如何共享登錄狀態(tài)?5. python如何不改動(dòng)文件的情況下修改文件的 修改日期6. python - 數(shù)據(jù)與循環(huán)次數(shù)對應(yīng)不上7. node.js - nodejs開發(fā)中常用的連接mysql的庫8. python - 我在使用pip install -r requirements.txt下載時(shí),為什么部分能下載,部分不能下載9. mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?10. mysql - 分庫分表、分區(qū)、讀寫分離 這些都是用在什么場景下 ,會(huì)帶來哪些效率或者其他方面的好處
