Простой код, но не могу найти ошибку (PyS60, но не конкретный) - PullRequest
1 голос
/ 21 декабря 2009

Я новичок в 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 ]

2 голосов
/ 22 декабря 2009

Перезапись на

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

похоже, теперь работает.
(Проблемы все еще остались, но я думаю, что это URL)

1 голос
/ 22 декабря 2009

Показать невидимых.Могу поспорить, что в одной из этих строк скрывается недопустимый символ (ноль - фаворит), и он не отображается на вашем экране.Или, возможно, файл имеет неправильный тип конца строки.

Мои обычные приемы здесь:

1) Возможно, вы ввели его прямо в StackOverflow;попробуйте скопировать этот код обратно в исходный код и посмотреть, исправит ли он что-то.Иногда трудно увидеть, если вы поставили a], где a) или} должны быть.

2) Закомментируйте все строки, затем раскомментируйте их по одной, пока не появится синтаксическая ошибка.Если синтаксическая ошибка присутствует, когда вы закомментируете все остальные строки, то настоящая проблема в восходящем направлении.

3) Удалите рассматриваемую строку и пару строк ниже и выше ее.Удалить эти строки в одной операции;Вы не хотите, чтобы плохой персонаж оставался рядом, потому что он был между двумя строками, которые вы удаляли по одной за раз.Затем перепечатайте эти строки.Не вставляйте их обратно;это может просто вставить проблему обратно.

0 голосов
/ 21 декабря 2009

Я на самом деле не вижу проблемы, если только вы не смешиваете табуляции и пробелы в этом отступе, и в этом случае ошибка должна жаловаться на уровни отступа. Но я думал, что укажу, что есть намного более чистый способ прочитать все строки в подобном файлу объекте:

f = urllib.urlopen("http://someurl.com/someText.txt")
lines = f.readlines()
appuifw.selection_list(choices=lines)
0 голосов
/ 22 декабря 2009

Вы перезаписываете встроенную функцию file своей переменной с тем же именем. Может быть, это вызывает у Py60 некоторое горе?

0 голосов
/ 21 декабря 2009

Кажется, работает нормально в моем интерпретаторе 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. У меня его нет на моей машине, но, возможно, стоит посмотреть, в этом ли проблема.

...