[Tutor] batch file processing w/ python using cmd line executable?

Alan Gauld alan.gauld at btinternet.com
Fri Feb 12 21:00:42 CET 2010


"kevin parks" <kp8 at mac.com> wrote 

> I wonder if it is possible to use python to call sox and have it do  
> os.mkdir, process all the input files in a particular directory and  
> put the converted files into the directory it made with mkdir...

Of course. What do you perceive to be the problem?
This would just be a standard loop or os.walk call.

> The script would call sox repeatedly and create a new dir with a  
> converted file for each found in the original folder. like so:

Presumably a new dir for each dir found?
Thus mirroring the source structure? Thats easily done with 
os.walk and would be a good place to start writing the script.

Calling sox can be done using the subprocess module.

> what makes this especially hairy is that sox is a monster an typically  
> needs a crazy number of arguments, though these would be the same for  
> the whole batch. 

So store them in a list and apply them to each call. 
subprocess makes this easy.

> % sox -V3 -D -S St.01.aif -b16  kp/flute/STout/St.01.wav rate -s -v  
> 44100
> 
> Is there away to do this in python, by just pointing it to a whole dir  
> of files and say "do it" to all of these?

I'd check out os.walk and subprocess.

Both are discussed in the Using the OS topic in my tutorial.

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/



More information about the Tutor mailing list