简单代码却找不到错误(PyS60,但不具体)

1 投票
5 回答
997 浏览
提问于 2025-04-15 17:15

我刚开始学Python,现在搞得我很紧张:

L = []
file = urllib.urlopen("http://someurl.com/someText.txt")
line = file.readline()
while line != "" :
  L.append(line)
  line = file.readline()
appuifw.selection_list(choices=L)

然后我遇到了这个错误:

 line = file.readline()
 ^
SyntaxError: invalid syntax

有没有人知道这是怎么回事?

5 个回答

0

在我的Python解释器(2.6.1版本)中,似乎一切正常。

我想你应该先执行了 import urllib 呢?(如果没有这样做,会出现 NameError,而不是 SyntaxError。)

补充:我快速在谷歌上查了一下,发现了这个: http://discussion.forum.nokia.com/forum/showthread.php?t=150563

这个帖子已经有18个月了,但它说PyS60是Python 2.2.2。我机器上没有这个版本,但可以看看这是不是问题所在。

1

显示隐藏字符。我敢打赌,在某一行里可能有个非法字符(比如空字符)藏着,它在你的屏幕上看不见。或者文件的行结束符可能不对。

我通常会用这些方法:

1) 你可能在StackOverflow上输入得没错,试着把这段代码复制回源文件,看看能不能解决问题。有时候很难发现你是不是把一个]放在了应该放)或}的地方。

2) 把所有的代码行都注释掉,然后逐行取消注释,直到语法错误再次出现。如果在你注释掉其他所有行时,语法错误依然存在,那真正的问题就在之前的代码里。

3) 删除有问题的那一行,以及它上下的几行。要一次性删除这些行;你不想让坏字符留在那,因为它可能在你逐行删除的过程中被保留下来了。然后重新输入这些行。不要直接粘贴回来;那样可能会把问题再粘贴回去。

2

重写成

file = urllib.urlopen("http://blabla.com/bla.txt")
lines1 = file.readlines()
for li in lines1:
  L.append(li)
index = appuifw.selection_list(choices=L)

现在似乎可以用了。
(还有一些问题,不过我觉得可能是网址的问题)

撰写回答