Run Unix shell command $ parse command line arguments in python

R

rkoida

Hello evryone

I am a newbie to python. I have a makefile which i can compile in
UNIX/LINUX, But i
I am planning to write a python script which actually does what my
MAKEFILE does. The make file is

#Makefile and some scripts to give output
#numbers
#Change till sign #END
var1:=564-574
a1 = 23
b1 = 678
kxm = ixm_7.gh
out = c$(var1)_s.gh
imageim
#END
#other files
file1 = sec$(b1).jk
file2 = sgf$(a1)
file3 = p$(b1).gh
prg3scriptfile = prg3_produce.xx
findoutdir = Dir:~/home/
x=67
#work
evrything: prg1 script2 prg3 script4
withoutprg1: script2 prg3 script4
prg1:
s$(ca)$(d) .

script2: Makefile
./script2 -i '$(file2)' -o '$(file1)' -a $(x) -n

prg3:
: > $(prg3scriptfile) prg3 $(prg3scriptfile)
rm $(prg3scriptfile)
script4:
./script4 $(kxm) $(file2) $(out) $(var1)

I want to write a python script to replace this Makefile.
I Have tried using getopt/optparse for parsing command line options
How to Run Unix shell command from python.

My Task is

Myprg.py a1 b1 kxm out

Kindly suggest me some ideas/comments.

Thanks
koid wayne
 
H

hue

Thanks for your reply

I started writing the script.. I have gone through documentation for
getopt

import string, getopt, sys

def usage():

print '''myscript.py -- uses getopt to recognize options
Options: -n -- No
-t -- T
-h -- help
-i -- i
-o -- Output:filename'''
sys.exit(1)
def main():

print "SYS ARGV: ", ",".join(sys.argv)

# Define the Options

Options = {
'n:': 'Number=',
't:': 'T',
'h' : 'help',
'i' : 'i',
'o' : 'Output_file',
}
shortOpts = ''.join(Options.keys())
longOpts = Options.values()


try:
(opts, args) = getopt.getopt(argv[1:], shortOpts, longOpts)
except getopt.error, msg:
print "Unrecognized argument or option"
# end try


for (opt, arg) in opts:

if opt in ('-n', '--Number'):
print '-n is the Number', Number
sys.exit()

elif opt in ('-t', '--T'):
print '-t is the T', T
sys.exit()

elif opt in ('-h', '--help'):
usage()
print " "
sys.exit()

elif opt in ('-i', '--i'):
print " I", i


elif opt in ('-o', '--Output Filename'):
print "Output", Output


# end if
# end for

print "OPTS: ", ",".join([repr(o) for o in opts])
print "ARGS: ", ",".join(args)

if __name__ == "__main__":
main()

with the above code, I am planning to do command line parsing. But how
to run unix shell command? DO i have to use os Module/ import command?

How should i proceed further, to
import commands
commands.getstatusoutput('ls /bin/ls')

Please suggest me some ideas how to proceed further

Thanks
 
S

Simon Brunning

Thanks for your reply

I started writing the script.. I have gone through documentation for
getopt

(snip)

Good start. I tend to prefer optparse over getopt these days, but if
you've got it working the way you want it, you should probably stick
with what you have.
with the above code, I am planning to do command line parsing. But how
to run unix shell command? DO i have to use os Module/ import command?

How should i proceed further, to
import commands
commands.getstatusoutput('ls /bin/ls')

You'll certainly need to import *something*. Have you looked at the
subprocess module?
 
T

Terry Hancock

I am a newbie to python. I have a makefile which i can compile in
UNIX/LINUX, But i
I am planning to write a python script which actually does what my
MAKEFILE does. The make file is [...]
I want to write a python script to replace this Makefile.
I Have tried using getopt/optparse for parsing command line options
How to Run Unix shell command from python.

Read the documentation on the "os" and "popen2" modules under
"generic operating system services" in the Python Standard Library
Manual (go to http://www.python.org if you haven't already got this
manual on hand).

Cheers,
Terry
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,226
Members
46,815
Latest member
treekmostly22

Latest Threads

Top