8

so I wrote some class in a Python script like:

#!/usr/bin/python
import sys
import csv
filepath = sys.argv[1]

class test(object):
    def __init__(self, filepath):
        self.filepath = filepath

    def method(self):
        list = []
        with open(self.filepath, "r") as table:
            reader = csv.reader(table, delimiter="\t")
            for line in reader:
                list.append[line]

If I call this script from the command line, how am I able to call method? so usually I enter: $ python test.py test_file Now I just need to know how to access the class function called "method".

JadenBlaine
  • 275
  • 1
  • 3
  • 13

2 Answers2

4

You'd create an instance of the class, then call the method:

test_instance = test(filepath)
test_instance.method()

Note that in Python you don't have to create classes just to run code. You could just use a simple function here:

import sys
import csv

def read_csv(filepath):
    list = []
    with open(self.filepath, "r") as table:
        reader = csv.reader(table, delimiter="\t")
        for line in reader:
            list.append[line]

if __name__ == '__main__':
    read_csv(sys.argv[1])

where I moved the function call to a __main__ guard so that you can also use the script as a module and import the read_csv() function for use elsewhere.

Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
  • I know that I could use the function without writing it inside a class but I was simply curious about how it would be possible to do this:) – JadenBlaine Jul 13 '15 at 10:01
2

Open Python interpreter from the command line.

$ python

Import your python code module, make a class instance and call the method.

>>> import test
>>> instance = test(test_file)
>>> instance.method()
Bleh
  • 441
  • 3
  • 14