how to run a python file with another file as an argument!

S

se7en

okay,

i cant seem to run a file with another file as an argument.

e.g I want to send the file "x.met" as an argument when running the file "y.py"

thanx
-python newbie-
 
C

Carmine Noviello

okay,

i cant seem to run a file with another file as an argument.

e.g I want to send the file "x.met" as an argument when running the file "y.py"

thanx
-python newbie-


Maybe you are looking for 'sys.argv' list?
 
D

Dave Kuhlman

se7en said:
okay,

i cant seem to run a file with another file as an argument.

e.g I want to send the file "x.met" as an argument when running
the file "y.py"

You will want to read about file objects in Python. See:

http://www.python.org/doc/current/lib/bltin-file-objects.html

Pass the file *name* on the command line.

Try something like the following:

===========================================================

#!/usr/bin/env python

import sys

def main():
# Get the arguments from the command line, except the first one.
args = sys.argv[1:]
if len(args) == 1:
# Open the file for read only.
infile = file(args[0], 'r')
content = infile.read()
infile.close()
# Do something with the contents of the file.
o
o
o
else:
print 'usage: y.py <inputfile>'
sys.exit(-1)

if __name__ == '__main__':
main()

===========================================================

Here is an alternative that reads one line at a time:

===========================================================

#!/usr/bin/env python

import sys

def main():
# Get the arguments from the command line, except the first one.
args = sys.argv[1:]
if len(args) == 1:
# Open the file for read only.
infile = file(args[0], 'r')
# Iterate over the lines in the file.
# Note that a file object obeys the iterator protocol.
for line in infile:
do_process(line)
infile.close()
else:
print 'usage: y.py <inputfile>'
sys.exit(-1)

if __name__ == '__main__':
main()

===========================================================

Hope this helps.

Dave
 

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,763
Messages
2,569,563
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top