Один примитивный способ сделать это:
def default_cell(xl_obj, cell, default_val):
try:
return str(round(xl_obj[cell].value,2))
except: #best if you can narrow down the exception...
return default_val
kit = {
"1A": default_cell('a8', "0.00"),
"2A": default_cell('a9', "0.00"),
....
}
легче просить прощения, чем разрешения в Python.
Для FF3 вы можете получить доступ к файлу cookies.sqlite с помощью любой оболочки SQLite - однако, проверьте, работает ли FF - возможно, это блокировка записи файла (не проверено).
База данных содержит следующее:
TABLE moz_cookies (
id INTEGER PRIMARY KEY,
name TEXT,
value TEXT,
host TEXT,
path TEXT,
expiry INTEGER,
lastAccessed INTEGER,
isSecure INTEGER,
isHttpOnly INTEGER
)
Не уверен насчет первичного ключа, похоже, что это метка времени Unix, когда был создан cookie; expiry и lastAccessed также являются временными метками Unix, остальное не требует пояснений.
Попробуйте INSERT INTO moz_cookies
и посмотрите, не станет ли FF немедленно узнавать о новом cookie или требуется перезапуск.
Вам потребуется использовать соединитель SQLite и подключиться к файлу базы данных cookie пользователя. Он находится в папке их профиля по умолчанию и называется cookies.sqlite. Проверьте sqlite-manager для Firefox. Вы можете просмотреть все таблицы, которые Firefox использует с этим.
Редактировать: Вот ссылка на провайдера: System.Data.SQLite
http://sqlite.phxsoftware.com/
Это отлично подходит для работы с SQLite в .NET