|
Martha Zimet
zimet at manray.com
Fri Feb 22 20:06:47 EST 2008
I got it work by adding the following:
import subprocess
...
...
p = subprocess.Popen(command, stdout=subprocess.PIPE)
for line in p.stdout:
req.write(line)
req.write(p.wait())
...
I still don't know why the other way didn't work, but I am fine now.
On Fri Feb 22 18:48 , argriffi sent:
>What I meant was that there are at least a couple of problems with this
>line.
>First, you probably want "output" instead of "ouput".
>Second, you probably want "read()" instead of "read".
>If you've already tried those versions then I'm just being dense :)
>
>
>Martha Zimet wrote:
>> My bad.. I also tried that in my various versions
>> of the code. Same result.
>>
>> On Fri Feb 22 18:39 , argriffi sent:
>>
>>
>>> ouput = os.popen(command).read
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Martha Zimet wrote:
>>>
>>>> I am attempting to call os.system and os.popen from within
>>>> a mod_python script and nothing happens. That is, the commands
>>>> perform no action. I am attempting to use os.system and os.popen
>>>> to execute wget, and I wonder if there any tricks that I am not
>>>> aware of. I have been googling and didn't find anything useful.
>>>> Any assistance would be appreciated.
>>>>
>>>> Here is some code where 'update' is called from an HTML form.
>>>> I have tried both os.system and os.popen with the same result.
>>>> I read about Popen, rather than os.popen, but that does not
>>>> seem to exist in my implementation.
>>>>
>>>> Thanks in advance.
>>>>
>>>> Regards,
>>>>
>>>> /martha
>>>>
>>>> from mod_python import apache
>>>> import cgi
>>>> import pg
>>>> from cgi import escape
>>>> from urllib import unquote
>>>> import sys
>>>> import os
>>>>
>>>> def update(req):
>>>>
>>>> # The getfirst() method returns the value of the first field
>>>> # with the name passed as the method argument
>>>> host = req.form.getfirst('host', '')
>>>> user = req.form.getfirst('user', '')
>>>> password = req.form.getfirst('password', '')
>>>>
>>>> # Escape the user input to avoid script injection attacks
>>>> host = cgi.escape(host)
>>>> user = cgi.escape(user)
>>>> password = cgi.escape(password)
>>>>
>>>> try:
>>>> output = ''
>>>> command = "wget --user %s --password %s
>>>> http://%s/svn/backend/able1.0/db/db.sql" % (user, password, host)
>>>> req.write(command)
>>>> req.write('\n')
>>>> ouput = os.popen(command).read
>>>> req.write(output)
>>>> req.write('\n')
>>>>
>>>> except Exception, e:
>>>> r = sys.exc_info()
>>>> generator = (str(x) for x in r)
>>>> newstring = ''.join(generator)
>>>> req.write(newstring)
>>>> req.write('\n')
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Mod_python mailing list
>>>> Mod_python at modpython.org
>>>> http://mailman.modpython.org/mailman/listinfo/mod_python
>>>>
>>>>
>>
>>
>>
>
|