linux - Problems running terminal command via Python -
i'm working on small project need control console player via python. example command works on linux terminal:
mplayer -loop 0 -playlist <(find "/mnt/music/soundtrack" -type f | egrep -i '(\.mp3|\.wav|\.flac|\.ogg|\.avi|\.flv|\.mpeg|\.mpg)'| sort) in python i'm doing following:
command = """mplayer -loop 0 -playlist <(find "/mnt/music/soundtrack" -type f | egrep -i '(\.mp3|\.wav|\.flac|\.ogg|\.avi|\.flv|\.mpeg|\.mpg)'| sort)""" os.system(command) the problem when try using python gives me error when run it:
sh: 1: syntax error: "(" unexpected i'm confused here because exact same string. why doesn't second method work?
thanks.
your default user shell bash. python's os.system command calls sh default in linux.
a workaround use subprocess.check_call() , pass shell=true argument tell subprocess execute using default user shell.
import subprocess command = """mplayer -loop 0 -playlist <(find "/mnt/music/soundtrack" -type f | egrep -i '(\.mp3|\.wav|\.flac|\.ogg|\.avi|\.flv|\.mpeg|\.mpg)'| sort)""" subprocess.check_call(command, shell=true)
Comments
Post a Comment