dictionary
のモジュールdict.py
にある関数is_english_word
を呼び出そうとしています。ここでは階層は次のとおりです。モジュールと同じディレクトリにあるファイルを開くモジュールをインポートするにはどうすればよいですか?
DataCleaning
|___ text_cleaner.py
|___ dictionary
|___ dict.py
|___ list_of_english_words.txt
明確にするために、私はdictionary
と呼ばれる1つのパッケージにdict.py
とlist_of_english_words.txt
を持っています。ここで
はtext_cleaner.py
で書かれたimport文です:
import DataCleaning.dictionary.dict as dictionary
と、ここdict.py
で書かれたコードは次のとおりです。
import os
with open(os.path.join(os.path.dirname(os.path.realpath('__file__')), 'list_of_english_words.txt')) as word_file:
english_words = set(word.strip().lower() for word in word_file)
def is_english_word(word):
return word.lower() in english_words
しかし、私はtext_cleaner.py
ファイルを実行すると、それは示していlist_of_english_words.txt
をインポートできません:
Traceback (most recent call last):
File "E:/Analytics Practice/Social Media Analytics/analyticsPlatform/DataCleaning/text_cleaner.py", line 1, in <module>
import DataCleaning.dictionary.dict as dictionary
File "E:\Analytics Practice\Social Media Analytics\analyticsPlatform\DataCleaning\dictionary\dict.py", line 3, in <module>
with open(os.path.join(os.path.dirname(os.path.realpath('__file__')), 'list_of_english_words.txt')) as word_file:
FileNotFoundError: [Errno 2] No such file or directory: 'E:\\Analytics Practice\\Social Media Analytics\\analyticsPlatform\\DataCleaning\\list_of_english_words.txt'
しかし、dict.py
コード自体を実行すると、エラーは表示されません。私は明らかにos.path.dirname(os.path.realpath('__file__'))
がtext_cleaner.py
のディレクトリを指し、dict.py
ではないことが分かります。モジュールdict.py
のインポートをどこから呼び出すのかを独立させる方法を教えてください。
はos.path.realpath 'に' os.path.realpath( '__ __ファイルを') 'に変更してください(__ __ FILE)'。 – Bakuriu
作品!間違いを指摘してくれてありがとう。 –