7

プログラムが読み取っているファイルの名前に、以下のような文字列が含まれているかどうかを確認する方法を見つけようとしています。それが正しい方法であるかどうかはわかりません。プログラムで後で使用する必要があるため、文字列はグローバル変数になります。

class Wordnet():

    def __init__(self):
        self.graph = Graph()
        self.filename = ''
        self.word_type = ''

    def process_file(self):
        self.filename = "noun.txt"
        self.file = open(self.filename, "r")
        return self.file, self.filename

    def check_word_type(self, filename):
        if 'noun' in filename:
            self.word_type = 'noun'
        elif 'verb' in filename:
            self.word_type = 'verb'
        elif 'vrb' in filename:
            self.word_type = 'verb'
        elif adj in filename:
            self.word_type = 'adj'
        elif adv in filename:
            self.word_type = 'adv'
        else:
            self.word_type = ''
        return self.word_type

if __name__ == '__main__':
    wordnet = Wordnet()
    my_file = wordnet.process_file()  
    print wordnet.word_type

どんな助けでも素晴らしいでしょう

4

2 に答える 2

11

これを試して:

def check_word_type(self, filename):
    words = ['noun','verb','vrb','adj','adv'] #I am not sure if adj and adv are variables
    self.word_type = ''
    for i in words:
        if i in filename:
            self.word_type = str(i) #just make sure its string

    return self.word_type
于 2013-07-04T14:45:29.660 に答える
1

check_word_type()あなたはどこにも電話していません。試す:

def process_file(self):
    self.filename = "noun.txt"
    self.file = open(self.filename, "r")
    self.check_word_type(self, self.filename)
    return self.file, self.filename
于 2013-07-04T14:45:39.067 に答える