在运行中,Jupyter笔记本电脑在90%的时间内都不会打印任何内容

时间:2017-04-08 13:29:02

标签: python python-2.7 jupyter-notebook graphlab

我的代码 - 打开一个csv文件,其中包含每个包含简历的链接列表,在简历中打印文本,基本情绪和相应的链接 - 仅在某些情况下有效。

最初我认为代码没有用,但事实上确实如此,到目前为止我已经成功地打印了几次,但这种情况很少见。

文件'test.csv'只包含三个链接,非常小。笔记本似乎没在想。

我正在使用Graph Lab Create中的Jupyter笔记本,我已经成功地在我的Microsoft安装和OSX安装上打印出来。现在我在我的Mac上,当我按Shift + Enter时没有任何反应。在没有任何结果的情况下转向[num]之前我得到一个瞬间[*]。

我尝试分成三个单独的单元格并立即执行。它只在代码分成三个单元格后才起作用。

以前有人有这个问题吗?任何建议都可以非常感谢。

Python 2.7

import urllib
from bs4 import BeautifulSoup
from textblob import TextBlob

all_links = open('test.csv', 'r')

for links in all_links:
    html = urllib.urlopen(links).read()
    soup = BeautifulSoup(html, "lxml")

    for script in soup(["script", "style"]):
        script.extract()

        text = soup.get_text()

        lines = (line.strip() for line in text.splitlines())
        chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
        text = '\n'.join(chunk for chunk in chunks if chunk)

        words = text.encode('utf-8')
        sent = words.decode('utf-8')

        dec_sent = TextBlob(sent)

        print links, words, dec_sent.sentiment.polarity

1 个答案:

答案 0 :(得分:0)

您的问题可能是因为您在for循环中定义了wordsdec_sent而在links中没有定义,但是从以前的单元格中重新使用... < / p>

如果html为空,则循环未运行,因此您没有定义这些变量并且应该出错(或者正在打印先前运行的值)。

重新启动你的jupyter内核并重新执行所有单元格,也可以print locals()查看已定义的变量。