无法读取文件并将其与我的代码一起使用

时间:2017-01-19 14:26:49

标签: python

我正在使用以下模块:

from nltk.tokenize import word_tokenize
from nltk.util import ngrams

def makeNGrams(filename, n):
  variable_NGrams = ngrams(word_tokenize(filename), n)
  return [' '.join(grams) for grams in variable_NGrams]

只需输入我想要使用它的文本即可,但导入文本文件不起作用。

当我像这样编写模块时

from nltk.tokenize import word_tokenize
from nltk.util import ngrams

def makeNGrams(filename, n):
  text = open(filename, 'r').read()
  variable_NGrams = ngrams(word_tokenize(text), n)
  return [' '.join(grams) for grams in variable_NGrams]

并使用它打开一个特定的txt文件,我得到了大量的错误

如何在此模块中导入和使用文本文件?

2 个答案:

答案 0 :(得分:0)

您有两个问题之一。您的文件名是全名,并且您不需要附加.txt,或者它不包含正确的文件扩展名,您需要正确添加它。

选项1:

def makeNGrams(filename, n):
    # Note the difference here
    text = open(filename, 'r').read()
    variable_NGrams = ngrams(word_tokenize(text), n)
    return [' '.join(grams) for grams in variable_NGrams]

选项2:

def makeNGrams(filename, n):
    # Note the difference here
    text = open('{}.txt'.format(filename), 'r').read()
    variable_NGrams = ngrams(word_tokenize(text), n)
    return [' '.join(grams) for grams in variable_NGrams]

答案 1 :(得分:0)

打开文件时最好使用try除块。这种方式更容易发现错误

import pprint

尝试:

with  open('filname', 'r') as f:

    text = f.read()

除了例外e:

pprint.pprint(e)

FileNotFoundError(2,'没有这样的文件或目录')