By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,505 Members | 1,206 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,505 IT Pros & Developers. It's quick & easy.

How do you execute external programs from Python?

P: n/a
Hi,

I have this little code snippet that I use for recording audio streams. My
problem is that I want to schedule my recordings with crontab. This does
not work, however. I cannot figure out why; my code works fine when run
manually from the command prompt.

On final thing: What would be the best way to turn off the recording?

Can someone help me?

Carl
Here is my code:

import time
import os
import shutil

URL = "http://www.jazzandblues.org/listen/links/kkjz1.ram"

def RecordURL(what = "KKJZ"):
str_mplayer = "mplayer -playlist " + URL
str_mplayer += " -ao pcm -aofile "
str_mplayer += what + ".wav" + " -vc dummy -vo null"
os.system(str_mplayer)

def CreateOGG(what = "KKJZ"):
ogg_file = what + ".ogg"
str_oggenc = "oggenc " + what + ".wav"
os.system(str_oggenc)

def CreateMP3(what = "KKJZ"):
mp3_file = what + ".mp3"
str_lame = "lame " + what + ".wav " + mp3_file
os.system(str_lame)

def DeleteWAV(what = "KKJZ"):
wav_file = what + ".wav"
str_rm = "rm " + wav_file
os.system(str_rm)

def DateTag(what = "KKJZ"):
local_time = time.asctime(time.localtime())
for local_file in [ what + ".ogg", what + ".mp3" ]:
length = len(local_file)
local_file_copy = local_file[: length - 4] + "_" + local_time + "."
+ local_file[length - 3 :]
shutil.copy(local_file, local_file_copy)

RecordURL()
## CreateOGG()
## CreateMP3()
## DeleteWAV()
## DateTag()

Here is my crontab entry:

30 * * * * python -c "import os; os.chdir('/home/alpha/mymusic/P2/Jazz/');
import KKJZ"
Jul 18 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a

You did not mentions what specific part is not working under cron, so
here is a guess.

Maybe the PATH environment variable is not set correctly such that
binaries like mplayer can not be found.

Try using absolute path names for mplayer and any other files.

/Jean Brouwers
In article <iGppd.2045$3N5.117@amstwist00>, Carl
<ph***********@chello.se> wrote:
Hi,

I have this little code snippet that I use for recording audio streams. My
problem is that I want to schedule my recordings with crontab. This does
not work, however. I cannot figure out why; my code works fine when run
manually from the command prompt.

On final thing: What would be the best way to turn off the recording?

Can someone help me?

Carl
Here is my code:

import time
import os
import shutil

URL = "http://www.jazzandblues.org/listen/links/kkjz1.ram"

def RecordURL(what = "KKJZ"):
str_mplayer = "mplayer -playlist " + URL
str_mplayer += " -ao pcm -aofile "
str_mplayer += what + ".wav" + " -vc dummy -vo null"
os.system(str_mplayer)

def CreateOGG(what = "KKJZ"):
ogg_file = what + ".ogg"
str_oggenc = "oggenc " + what + ".wav"
os.system(str_oggenc)

def CreateMP3(what = "KKJZ"):
mp3_file = what + ".mp3"
str_lame = "lame " + what + ".wav " + mp3_file
os.system(str_lame)

def DeleteWAV(what = "KKJZ"):
wav_file = what + ".wav"
str_rm = "rm " + wav_file
os.system(str_rm)

def DateTag(what = "KKJZ"):
local_time = time.asctime(time.localtime())
for local_file in [ what + ".ogg", what + ".mp3" ]:
length = len(local_file)
local_file_copy = local_file[: length - 4] + "_" + local_time + "."
+ local_file[length - 3 :]
shutil.copy(local_file, local_file_copy)

RecordURL()
## CreateOGG()
## CreateMP3()
## DeleteWAV()
## DateTag()

Here is my crontab entry:

30 * * * * python -c "import os; os.chdir('/home/alpha/mymusic/P2/Jazz/');
import KKJZ"

Jul 18 '05 #2

P: n/a
> > Here is my crontab entry:

30 * * * * python -c "import os; os.chdir('/home/alpha/mymusic/P2/Jazz/');
import KKJZ"


Hi,

if cron is running as root say

30 * * * * "su - user; script.sh"

su - user means that .profile, .bash-profile etc is read. I think its
an "Environmental" Problem
Jul 18 '05 #3

P: n/a
Carl wrote:
Hi,

I have this little code snippet that I use for recording audio streams. My
problem is that I want to schedule my recordings with crontab. This does
not work, however. I cannot figure out why; my code works fine when run
manually from the command prompt.

On final thing: What would be the best way to turn off the recording?

Can someone help me?

Carl
Here is my code:

import time
import os
import shutil

URL = "http://www.jazzandblues.org/listen/links/kkjz1.ram"

def RecordURL(what = "KKJZ"):
str_mplayer = "mplayer -playlist " + URL
str_mplayer += " -ao pcm -aofile "
str_mplayer += what + ".wav" + " -vc dummy -vo null"
os.system(str_mplayer)

def CreateOGG(what = "KKJZ"):
ogg_file = what + ".ogg"
str_oggenc = "oggenc " + what + ".wav"
os.system(str_oggenc)

def CreateMP3(what = "KKJZ"):
mp3_file = what + ".mp3"
str_lame = "lame " + what + ".wav " + mp3_file
os.system(str_lame)

def DeleteWAV(what = "KKJZ"):
wav_file = what + ".wav"
str_rm = "rm " + wav_file
os.system(str_rm)

def DateTag(what = "KKJZ"):
local_time = time.asctime(time.localtime())
for local_file in [ what + ".ogg", what + ".mp3" ]:
length = len(local_file)
local_file_copy = local_file[: length - 4] + "_" + local_time +
"."
+ local_file[length - 3 :]
shutil.copy(local_file, local_file_copy)

RecordURL()
## CreateOGG()
## CreateMP3()
## DeleteWAV()
## DateTag()

Here is my crontab entry:

30 * * * * python -c "import os; os.chdir('/home/alpha/mymusic/P2/Jazz/');
import KKJZ"


Thanks guys!

It was an environmental problem. It works now; the only thing I still
haven't solved is how to kill the spawned process after say an hour. Any
clues?

Carl

Jul 18 '05 #4

P: n/a
"Carl" <ph***********@chello.se> wrote in message
news:e_1qd.2176$3N5.2001@amstwist00...
Carl wrote:

Thanks guys!

It was an environmental problem. It works now; the only thing I still
haven't solved is how to kill the spawned process after say an hour. Any
clues?

Carl


Have you investigated...?

os.spawn*()
os.P_NOWAIT
os.kill()
Jul 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.