UNIX-скрипт для вызова Python - PullRequest
       2

UNIX-скрипт для вызова Python

0 голосов
/ 03 февраля 2011

У меня есть сценарий python, который выполняется на трех файлах следующим образом: align.py * .wav * .txt * .TextGrid Однако у меня есть каталог, полный файлов, которые я хочу просмотреть.Оригинальный автор предлагает создать сценарий оболочки для циклического перемещения по файлам.Сложность цикла заключается в том, что мне нужно сопоставить три файла одновременно с тремя разными расширениями, чтобы скрипт работал правильно.Может кто-нибудь помочь мне выяснить, как создать сценарий оболочки для циклического прохождения по каталогу файлов, сопоставить три из них по имени (с тремя различными расширениями) и запустить сценарий python для каждого триплета?Спасибо!

Ответы [ 2 ]

3 голосов
/ 03 февраля 2011

Предполагается, что вы используете bash, вот одна строка:

for f in *.wav; do align.py $f ${f%\.*}.txt ${f%\.*}.TextGrid; done
0 голосов
/ 03 февраля 2011

Вы можете использовать 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...