TypeError:强制使用Unicode:需要字符串或缓冲区,在python中找到文件

TypeError:强制使用Unicode:需要字符串或缓冲区,在python中找到文件,python,nltk,Python,Nltk,我想阻止单词,为此我从nltk导入了porterstemmerpkg,但在运行时发生了一个错误 错误是: TypeError: coercing to Unicode: need string or buffer, file found 我的Python代码是 import nltk; from nltk.stem import PorterStemmer stemmer=PorterStemmer() file = open('C:/Python26/tes

我想阻止单词,为此我从
nltk
导入了
porterstemmer
pkg,但在运行时发生了一个错误

错误是:

TypeError: coercing to Unicode: need string or buffer, file found
我的Python代码是

  import nltk;     
  from nltk.stem import PorterStemmer  
  stemmer=PorterStemmer()  
  file = open('C:/Python26/test.txt','r')  
  f=open("root.txt",'w')  
  with open(file,'r',-1) as rf:  
    lines = rf.readlines()  
    for word in lines:  
        root = stemmer.stem(word)  
        f.write(root+"\n")  
    f.close()  

是的,我试过了,得到了一个我无法理解的错误,错误是1.6.2 回溯(最近一次呼叫最后一次): 文件“C:\Python26\check.py”,第10行,在 打开(文件'r',-1)作为rf: UnicodeDecodeError:“ascii”编解码器无法解码第6位的字节0xf8:序号不在范围内(128)

步行
交谈
橙子
书籍
Src
Src
单克隆抗体


您正在第4行中打开
文件
,然后将其用作第6行中另一个
open()
的文件名。只要做:

import nltk;     
from nltk.stem import PorterStemmer  
stemmer=PorterStemmer()  
with open("root.txt",'w') as f:
    with open('C:/Python26/test.txt','r',-1) as rf:  
      lines = rf.readlines()  
      for word in lines:  
          root = stemmer.stem(word)  
          f.write(root+"\n")  

您正在第4行中打开
文件
,然后将其用作第6行中另一个
open()
的文件名。只要做:

import nltk;     
from nltk.stem import PorterStemmer  
stemmer=PorterStemmer()  
with open("root.txt",'w') as f:
    with open('C:/Python26/test.txt','r',-1) as rf:  
      lines = rf.readlines()  
      for word in lines:  
          root = stemmer.stem(word)  
          f.write(root+"\n")  

您已经打开了该文件。您正试图通过open…将文件对象传递给
。删除
file=open('C:/…
行)

附言。
您将在行而不是单词上进行迭代。

您已经打开了文件。您正试图通过open…
将文件对象传递给
。Remove
file=open('C:/…
行)

附言。
您将迭代行,而不是单词。

似乎问题在于传递给函数的参数,我猜它在
root=stemmer.stem(word)

尝试使用函数genfromtxt而不是open():


这应该可以解决问题。

问题似乎在于传递给函数的参数,我猜它在
root=stemmer.stem(word)

尝试使用函数genfromtxt而不是open():


这应该可以解决问题。

我试过“Anthon”的代码它没有产生任何错误,但没有阻止错误word@ShaheenGul你试过我的吗?是的,我试过了,但出现了一个我无法理解的错误。你在文档开头声明编码了吗?把这个放在文件的开头,看看错误是否仍然存在
#-*-编码:UTF-8-*-
这是什么意思?我不明白无论如何,我也会这样做,但当我添加#--coding:UTF-8---,因为#用于注释文本时,结果是一样的,但是当我删除这个时,我遇到了错误,我尝试了“Anthon”的代码它没有产生任何错误,但没有阻止错误word@ShaheenGul你试过我的吗?是的,我试过了,但出现了一个我无法理解的错误。你在文档开头声明编码了吗?把这个放在文件的开头,看看错误是否仍然存在
#-*-编码:UTF-8-*-
这是什么意思?我不明白无论如何,我也会这样做,但当我添加#--coding:UTF-8---,因为#用于注释文本时,结果是一样的,但是当我删除这个时,遇到了错误
>>> import numpy as np
>>> from StringIO import StringIO
>>> np.genfromtxt('C:/Python26/test.txt', delimiter=",") #Whatever delimiter your file has.