[英]UNIX shell script to call python
我有一個以以下方式在三個文件上運行的python腳本align.py * .wav * .txt * .TextGrid但是,我有一個充滿要循環瀏覽的文件的目錄。 原始作者建議創建一個Shell腳本來循環瀏覽文件。 關於循環的棘手部分是,我需要一次將三個文件與三個不同的擴展名進行匹配,以使腳本正確運行。 誰能幫我弄清楚如何創建一個Shell腳本來循環遍歷文件目錄,根據名稱匹配其中三個(具有三個不同的擴展名)並在每個三元組上運行python腳本? 謝謝!
假設您正在使用bash,這是一個單行代碼:
for f in *.wav; do align.py $f ${f%\.*}.txt ${f%\.*}.TextGrid; done
你可以使用glob.glob只列出wav
文件,然后構建subprocess.Popen
調用就像這樣:
import glob
import os
import subprocess
for wav_name in glob.glob('*.wav'):
basename,ext = os.path.splitext(wav_name)
txt_name=basename+'.txt'
grid_name=basename+'.TextGrid'
proc=subprocess.Popen(['align.py',wav_name,txt_name,grid_name])
proc.communicate()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.