calling os.system using external method
All, All, 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: <dtml-call "externalMethodName(arg=fileName)">
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: <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. --jcc
Mike Doanh Tran wrote at 2003-6-24 15:57 -0600:
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: <dtml-call "externalMethodName(arg=fileName)">
Your "unixCommand" should read: unixCommand = 'find /home/uploads/ -name %s' ^ Zope/Pythons error messages (and tracebacks) are quite good. Careful reading usually points out the problem cause. In your case, I expect you got the message "not all arguments converted" which means: "%" got arguments for which there were not format specifies. Dieter
participants (3)
-
Dieter Maurer -
J Cameron Cooper -
Mike Doanh Tran