2017-10-05 17 views
1

これは繰り返しかもしれませんが、とにかくPythonでのインポートに直接関連しています。Pythonでモジュールをインポート中にファイルを読み込めませんでした

Main/
sample.py 
utils/preprocess.py , __init__.py 
Data/stopwords.txt 

import codecs 
stopwords_ = codecs.open('../Data/stopwords.txt' , encoding='utf-8') 
stopwords_ = stopwords_.readlines() 

preprocess.py

from utils import preprocess 

sample.pyでは、私はサンプルを実行すると、エラーがある次のような

私はディレクトリ構造を持っています。 py IOError:[Errno 2]そのようなファイルまたはディレクトリはありません: '../Data/stopwords.txt'。私はエラーの要点を理解しています。なぜなら、preprocess.pyでos.getcwd()を印刷すると、 '/ home/username/Main'が得られるからです。

しかし、それを解決する方法。どんな助けもありがたいです

+0

パスで "Data/stopwords.txt"を使用してください。 – planet260

+0

@ planet260 - それは私が推測するようなきちんとした方法ではありません。私は標準的なソリューションを探しています。ありがとう。 –

答えて

1

preprocess.pyのコードは特定の作業ディレクトリを想定しています。あなたはpreprocess.pyディレクトリに、この相対であることを確認することができます。

import codecs 
import os 
stopwords_file_path = os.path.join(
    os.path.dirname(__file__), 
    '../Data/stopwords.txt') 
stopwords_ = codecs.open(stopwords_file_path, encoding='utf-8') 
stopwords_ = stopwords_.readlines() 
+0

ありがとうございました。非常に必要となり、非常に便利です。 –

0
myfile = open("OpenEveningResults.csv", "a", newline="") 

あなたはへの書き込みまたはそれから読み取る前に、ファイルを開いたり、作成するために、異なるコードを使用して試してみたいことがあります。上記のコードを例として使用すると、[a]が追加されます(CSVまたはExelファイルを追加するたびに改行を追加する)。

+0

それが役立つかどうかは分かりませんがうまくいけば – Dan