在python中导入模块时无法加载文件

时间:2017-10-05 09:21:24

标签: python import relative-path

这可能是重复,但无论如何都与python中的导入直接相关。

我有一个如下目录结构:

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

在sample.py

from utils import preprocess

在preprocess.py中

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

现在错误是我运行sample.py IOError:[Errno 2]没有这样的文件或目录:' ../ Data / stopwords.txt' 。我理解错误的关键,因为当我在preprocess.py中打印os.getcwd()时,我得到' / home / username / Main' 。

但如何解决它。任何帮助将不胜感激

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

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

您可能希望在写入或读取文件之前尝试使用其他代码打开或创建文件。您可以使用上面的代码作为示例,因为它创建然后[a]追加(追加写入每次创建新行的文件)CSV或Exel文件。