name 'reload' is not defined解決方法


今天在學習scrapy的時候,在網上找了一段代碼,運行出了一點問題。

命令行報錯:

name 'reload' is not defined

原因是,python版本的問題

原代碼如下:

import time
import sys
reload(sys)
sys.setdefaultencoding('utf8')
 
 
class Meiju100Pipeline(object):
    def process_item(self, item, spider):
        today = time.strftime('%Y%m%d',time.localtime())
        fileName = today + 'movie.txt'
        with open(fileName,'a') as fp:
            fp.write(item['storyName'][0].encode("utf8") + '\t' + item['storyState'][0].encode("utf8") + '\t' + item['tvStation'][0] + '\t' + item['updateTime'][0] + '\n')
        return item

此代碼為python2.7版本,

reload(sys)              #重新加載sys模塊
sys.setdefaultencoding('utf8')   #設置默認編碼格式為utf-8

在3.x版本中,應改成如下:

import time
import sys
import importlib
importlib.reload(sys)
#sys.setdefaultencoding('utf8')
 
class Meiju100Pipeline(object):
    def process_item(self, item, spider):
        today = time.strftime('%Y%m%d',time.localtime())
        fileName = today + 'movie.txt'
        with open(fileName,'a') as fp:
            fp.write(item['storyName'][0].encode("utf8") + '\t' + item['storyState'][0].encode("utf8") + '\t' + item['tvStation'][0] + '\t' + item['updateTime'][0] + '\n')
        return item
設置編碼格式的代碼可以注釋掉,因為3.x版本中默認就是utf-8編碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM