[Zope] calling os.system using external method

J Cameron Cooper jccooper@jcameroncooper.com
Wed, 25 Jun 2003 15:07:29 -0500

>I have an External method that uses os.system to execute 
>a linux command on a local host.  I am trying to pass a file name
>to the findDocs function (see below) to locate the location (path) of the 
>wanted file and print it out on a dtml document.  Can someone please show me 
>how to make this work?
>Thanks in advanced for any suggestions.   
>#Python script to find location/path of local file
>import os
>unixCommand = 'find /home/uploads/ -name %'
>def findDocs(arg):
>  os.system(unixCommand%arg)
><dtml-call "externalMethodName(arg=fileName)">
I suspect you'll want to use one of the commands that allows you to get 
the results of a system call. Without the Python docs in front of me, I 
think that's 'os.popen' or similar. Maye you can do it with 'os.system', 
but I don't do it enough to have memorized it.

Split the results from stdin into elements of a list(by newline, 
probably), and call it with a list iterator (like dtml-in) to do your 
rendering. Shouldn't be more that five or six lines.