web-dev-qa-db-ja.com

コマンドラインからPythonクラスメソッドを呼び出す

だから私はPythonスクリプトのようなクラスを書いた:

#!/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]

このスクリプトをコマンドラインから呼び出す場合、メソッドを呼び出すにはどうすればよいですか?したがって、通常は次のように入力します。$ python test.py test_fileここで、「メソッド」と呼ばれるクラス関数にアクセスする方法を知る必要があります。

7
JadenBlaine

クラスのインスタンスを作成してから、次のメソッドを呼び出します。

_test_instance = test(filepath)
test_instance.method()
_

Pythonでは、コードを実行するためだけにクラスを作成する have はありません。ここで単純な関数を使用できます。

_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])
_

ここで、関数呼び出しを___main___ガードに移動して、またスクリプトをモジュールとして使用し、read_csv()関数をインポートして他の場所で使用できるようにしました。 。

3
Martijn Pieters

コマンドラインからPythonインタープリターを開きます。

$ python

pythonコードモジュールをインポートし、クラスインスタンスを作成して、メソッドを呼び出します。

>>> import test
>>> instance = test(test_file)
>>> instance.method()
0
Ishu Goyal