понедельник, 20 февраля 2012 г.

>>> import datetime
>>> d = datetime.date.today()
>>> print d.strftime('%B')
February
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')
'ru_RU.UTF-8'
>>> print d.strftime('%B')
Февраль

понедельник, 30 января 2012 г.

Очистка postgresql базы

Удаление всех пользовательских таблиц

1. psql -t -d database_name -c "SELECT 'DROP TABLE ' || n.nspname || '.' || c.relname || ' CASCADE;' FROM pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace AS n ON n.oid = c.relnamespace WHERE relkind = 'r' AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND pg_catalog.pg_table_is_visible(c.oid)" >/tmp/droptables
2. psql -d database_name -f /tmp/droptables

среда, 30 марта 2011 г.

пятница, 30 апреля 2010 г.

Не создавайте приложений с именем проекта

Иначе будут ошибки типа
ImportError: Could not import settings 'хххххх.settings' (Is it on sys.path? Does it have syntax errors?): No module named settings
ImportError: No module named urls

вторник, 20 октября 2009 г.

Python-трюки для начинающих

1. Нужно вывести на экран все буквы латинского алфавита (большие и маленькие) и
их код в виде:
a: XX
b: XX
c: XX

1 print '\n'.join([ ("%s:%i") % (chr(i), i) for i in list(range(ord('a'),ord('z')+1))+list(range(ord('A'),ord('Z')+1)) ])


list() добавлен для совместимости с третьим питоном (там range возвращают итератор, а не список)
ну и последним шагом стоит добавить юникод, чтобы можно было то же самое делать для русских букв

2 print '\n'.join([ ("%s:%i") % (unichr(i), i) for i in list(range(ord(u'а'),ord(u'я')+1))+list(range(ord(u'А'),ord(u'Я')+1)) ])

буква "ё" пропала, но будем считать это издержками юникода

2. Как определить - объявлялась ли выше переменная или нет?
1 try:
2 a # does a exist in the current namespace
3 expect NameError:
4 a = 10 # nope