def findWord(word):
f = open("words.txt", "r")
given_line = f.readlines()
for line in f:
if str(word) in line:
part = line[0]
## print(line+"\n"+str(word)+" is a "+part)
return True
else:
return False
print("fail")
f.close()
def partSpeech(inX):
f = open("words.txt", "a")
inX = inX.split()
for i in inX:
i = i.lower()
if(findWord(i) == False):
if "ify" in i[-3:] or "ate" in i[-3:] or "ize" in i[-3:] or "ing" in i[-3:] or "en" in i[-2:] or "ed" in i[-2:]:
f.write("\nV"+i)
elif "ment" in i[-4:] or "ion" in i[-3:] or "acy" in i[-3:] or "ism" in i[-3:] or "ist" in i[-3:] or "ness" in i[-3:] or "ity" in i[-3:] or "or" in i[-2:] or "y" in i[-1:]:
f.write("\nN"+i)
elif "ly" in i[-2:]:
f.write("\nD"+i)
else:
print(i+" was already in the database.")
本質的に、私の問題は「for line in f:」で発生します。問題は、コード全体で多数のマーカー(どこにあるかを決めるためのプリント)を配置した後、forループが実行されていないことです。私は、それがちょうどその行であるかfが数えられていないか、何であるかに関わらず、本当に理解できません。PythonファイルI/Oの問題:For Loopをバイパスしますか?
このスニペットでは、一連の単語を取り上げて、指定されたテキストファイル(問題がある部分)に既に入っているかどうかをチェックし、 、もしそうでなければ、それらに音声タグの一部を付け加えます。
EDIT:エラーはまったく起こりません。Forループを実行していないということだけです。すべての関数はある時点で呼び出され、partSpeechは単語の小さなリストで最後に呼び出されます。
EDIT 2:PROGRESS!並べ替えテキストファイルは空だったので、何の行も何も読み込んでいませんでした。しかし、今では、単語が既に存在するかどうかは考慮されていません。それだけでそれらをスキップします。
def partSpeech()を実際にどこかで呼び出していますか? –
"*テキストファイルが空でした*" – dimo414