Alan Outhier wrote: > I'm working on a Python script to call "sox" to convert ;ogg files to > .mp3s. > > In the following segment...:
To avoid garbled code as seen below please ensure that you post plain text. Thank you. > > *1 outname=fname+".mp3"2 fname=ReSpace(fname) # substitute " " > with > "\ "3 outname=ReSpace(outname)4 cmdline="sox " + fname + " " > +outname5 print cmdline6 rtncode=os.system(cmdline)7 if rtncode > <> > 0:8 print "Bad return code (" + str(rtncode) + ") from sox > command"9 sys.exit()* > > ...I DO get the error trap (every time). Line 5 causes the following (for > example) to be printed: > > > *sox Carnegie\ Hall\ Jazz\ Band/Carnegie\ Hall\ Jazz\ Band/Frame\ for\ > the\ Blues Carnegie\ Hall\ Jazz\ Band/Carnegie\ Hall\ Jazz\ Band/Frame\ > for\ the\ Blues.mp3* > *Bad return code (512) from sox command * > > I can however cop-past that output to bash and it works fine. > > I get similar (but *as expected* more complicated problems if I comment > out lines 2 & 3. > > Please help! I'll send the whole program if requested. The best approach is to use the subprocess module and let Python do the work for you. For example import subprocess fname = ... # may contain spaces outname = fname + ".mp3" # Pass arguments as a list, no need to use a shell: subprocess.check_output(["sox", fname, outname]) If the sox invocation fails check_output will raise a CalledProcessError exception that you can examine for details, print or just let bubble up. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor