繁体   English   中英

为什么readlines()代码在pythonfiddle中不起作用?

[英]Why doesn't this readlines() code work in pythonfiddle?

我今天不得不进行一些快速而又肮脏的文本解析,并想以此为契机来接触Python。 因此,我启动了pythonfiddle.com并将其炮制为:

import urllib2
response = urllib2.urlopen('http://xkcd.com/color/rgb.txt', timeout = 2)
lines = response.readlines()
for line in lines:
    print line

但它会在自己的行上打印每个字符:

#

L
i
c
...

经过一个半小时的反复试验,并尝试对同一个主题进行不同的变体,我终于下载了一个真正的Python shell,并在本地运行了它-它的行为符合预期。

我没有察觉到有什么微妙的事情在解释为什么它在第一次“回合”中不起作用? (例如语法细微之处,版本/环境差异等)。 还是pythonfiddle实现被破坏了? 在那种情况下,谁能推荐一个更好的在线提琴手(不需要注册)?

我还注意到在线工具的其他问题,例如,它无法编译:

import urllib2
for line in urllib2.urlopen('http://xkcd.com/color/rgb.txt', timeout = 2).readlines():
    print line.strip()

并且很容易混淆空格/制表符。

根据Python Fiddle常见问题解答 ,该网站使用Empythoned解释器 ,该解释器是通过Emscripten交叉编译器将CPython 2.7.2代码库转换为Javascript的。

如Empythoned项目页面所述:

该项目尚处于起步阶段。 现在,核心解释器可以很好地工作,但是许多库要么根本不起作用,要么包含各种错误。

这样一来,本地编译的CPython解释器和标准库所实现的功能以及在Pythonfiddle.com上可实现的功能之间将存在差异。

换句话说: 这是龙!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM