Каждый, кто ответил на этот вопрос до сих пор, абсолютно прав - read()
перемещается по файлу, поэтому после того, как вы его вызвали, вы не можете его снова называть.
Что я буду add - это то, что в вашем конкретном случае вам не нужно искать назад или снова открывать файл, вы можете просто сохранить текст, который вы прочитали в локальной переменной, и использовать его дважды или столько раз, сколько вам нравится, в вашей программе:
f = f.open()
text = f.read() # read the file into a local variable
# get the year
match = re.search(r'Popularity in (\d+)', text)
if match:
print match.group(1)
# get all the names
matches = re.findall(r'<td>(\d+)</td><td>(\w+)</td><td>(\w+)</td>', text)
if matches:
# matches will now not always be None
ОБНОВЛЕНИЕ: Когда я удаляю хранилище приложения, оно начинает работать. Я не понимаю ...
blockquote>У вас была более ранняя версия файла базы данных, в которой не было этой таблицы. Очистка хранилища приложений удалила файл базы данных и заставила sqlite helper
onCreate()
снова запускаться.См. Когда запускается SQLiteOpenHelper onCreate () / onUpgrade ()?
Почему он работал в отладке, потому что пакет отладки является другим идентификатором приложения и имеет отдельный частный каталог, где Файлы базы данных хранятся. Этот файл базы данных не имел этой проблемы.
измените свою базу данных на метод Create на этот:
db.execSQL("CREATE TABLE IF NOT EXISTS comentario(_id integer,
nome text not null,
correo text not null,
texto text not null,
idLoc integer not null, primary key (_id));");
он жалуется на no such table: comentario
... что означает, что таблица comentario
не была создана ранее - и что трассировка стека является просто последующей ошибкой. посмотрите выходные данные сборки для предупреждений ProGuard (или даже добавьте их к вопросу); там может быть что-то запутанное, что не должно было быть запутано. код класса базы данных совершенно не имеет значения (просто потому, что он работает, но не запутывается); имеет значение только журнал сборки. добавление -verbose
в конфигурацию ProGuard может помочь получить более подробную информацию.