簡體   English   中英

UNIX shell腳本調用python

[英]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.

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