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

Dave Kuhlman dkuhlman at rexx.com
Thu Feb 5 16:52:31 EST 2004


se7en wrote:

> 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

-- 
http://www.rexx.com/~dkuhlman
dkuhlman at rexx.com



More information about the Python-list mailing list