File对象没有属性encode-BeautifulSoup和Python

时间:2014-02-16 23:22:53

标签: python encoding beautifulsoup

我正在尝试找出解析HTML文件的最佳方法,并确保我完全以utf-8格式处理。目前我有:

fileName = open(givenDir +"/"+ aFile, "r").encode('utf8')
soup = BeautifulSoup(fileName)

我继续前行。这些都是本地文件。但它说文件对象没有属性编码。如果我取出编码位,它一切正常,但是当我用下面的代码打印字母时:

for word, count in wordList:
    wordFile.write("%s: %d\n" % (word.encode('utf8'), count))

出现一条消息“警告:root:某些字符无法解码,并被替换为REPLACEMENT CHARACTER”,这让我相信一开始没有真正编码的东西?

有人可以为我澄清这个吗?

1 个答案:

答案 0 :(得分:0)

open()返回一个文件对象。

如果您想获取文件内容,请使用file.read()file.readline()file.readlines()

这样就会产生你的代码:

fileName = open(givenDir +"/"+ aFile, "r").read().encode('utf8')
soup = BeautifulSoup(fileName)