我是一名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
有谁知道这是什么问题?
答案 0 :(得分: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)
它似乎现在起作用了。答案 1 :(得分:1)
显示隐形。我打赌隐藏在其中一行中的非法字符(null是最喜欢的)并且它没有出现在你的屏幕上。或者文件的行结尾可能不正确。
我常用的技巧:
1)你可能在StackOverflow中输入了它;尝试将此代码复制回源代码,看看它是否修复了问题。有时很难看出你是否应该把a)或}放在哪里。
2)注释掉所有行,然后逐个取消注释,直到再次出现语法错误。如果在注释掉所有其他行时出现语法错误,那么真正的问题就在于上游。
3)删除有问题的行,并在其下方和上方删除几行。在一次操作中删除这些行;你不希望坏角色留在身边,因为它位于你一次删除一行的两行之间。然后重新键入这些行。不要将它们粘贴回来;这可能只是将问题粘贴回来。
答案 2 :(得分:0)
似乎在我的Python解释器(2.6.1)中工作正常。
我认为你先做了import urllib
吗? (不这样做会导致NameError
,而不是SyntaxError
。)
编辑:快速Google发现了这一点:http://discussion.forum.nokia.com/forum/showthread.php?t=150563
它已经有18个月了,但它声称PyS60是Python 2.2.2。我在我的机器上没有这个,但是如果这是问题可能值得一看。
答案 3 :(得分:0)
我实际上没有看到问题,除非你在缩进中混合制表符和空格,在这种情况下错误应该抱怨缩进级别。但我想我会指出有一种更清晰的方式来读取类文件对象中的所有行:
f = urllib.urlopen("http://someurl.com/someText.txt")
lines = f.readlines()
appuifw.selection_list(choices=lines)
答案 4 :(得分:0)
您正在使用相同名称的变量覆盖内置函数file
。也许这导致Py60有些悲伤?