Python batching on XP

durumdara at mailpont.hu durumdara at mailpont.hu
Wed Sep 28 07:16:51 EDT 2005


Hi !

I have Py 2.3.5, and subprocess is placed in version 2.4.

The os.popen is not good, because it is not get return value. I can read 
the return value, but the message is os dependent (XP, 2k, NT).
I create this function. It is not too good, but it is working:

def Cmd(cmd,tmpdir="./"):
    outfn='%s/_out.msg'%tmpdir
    errfn='%s/_err.msg'%tmpdir
    post="1>%s 2>%s"%(outfn,errfn)
    cmd2='%s %s'%(cmd,post)
    r=os.system(cmd2)
    f=open(outfn,"r")
    try:
       s1=f.read()
    finally:
       f.close()
    f=open(errfn,"r")
    try:
       s2=f.read()
    finally:
       f.close()
    s="\n".join([s1,s2]).strip()
    return (r,s)

Anyone have a better idea ?

Thanks for it: dd



Larry Bates wrote:

>You should take a look at the subprocess module
>http://www.python.org/dev/doc/devel/lib/module-subprocess.html
>
>-Larry Bates
>
>durumdara at mailpont.hu wrote:
>  
>
>>Hi !
>>
>>I want to write a program that backup some databases in the night.
>>
>>Pseudo like this:
>>
>>try:
>>if cmd('net stop dbservice'):
>>  s=c://backup'+str(time.time())+'.zip'
>>  if cmd('zipit c:\\database '+s):
>>     if cmd('map drive \\\\backupdrive\\c$ y -user BACKUP -pwd SECRET'):
>>        if cmd('copy '+s+' y:\\'):
>>           LogSucc()
>>finally:
>> cmd('net start dbservice')
>>
>>I'm trying with os.system() commands.
>>But that is printing the result message to the screen, not to a tuple,
>>like commands.|getstatusoutput().
>>I need to store this message, because I want to log everything that this
>>program do/print; every of the messages.
>>
>>So: how to I capture the screen, or how to I use
>>|commands.|getstatusoutput() to access the Windows batch/cmd commands,
>>and get their errors/statuses ?
>>
>>Please help me !
>>
>>Thanks for it: dd
>>|
>>    
>>




More information about the Python-list mailing list