Сегодня передо мной встала задача производить бекап MySQL баз в облако, на Amazon S3, да ещё и с ротацией. Решений на этот я нашёл достаточно много, но все они были либо слишком громоздкими для данной задачи, либо чего то не умели (практически никто не умеет делать ротацию из коробки).
Записи
добавить записьНедавно передо мной встала задача провести опрос клиентов Hosting4Django. Разместить опрос в социальных сетях не вариант, т.к. большинство клиентов отсутствуют среди подписчиков группы. Разместить новость на сайте? Хорошая идея, но далеко не все просматривают этот раздел. Немного поразмыслив я остановился на электронной почте. Но как сделать опрос, что будет забирать минимум времени клиентов и при этом сохранить эффективность?
Читать дальшеМеня давно беспокоила мысль, что в альбомах Vkontakte есть несколько фото, локальных копий которых у меня нет. Перебирать все альбомы и фото занятие, конечно, полезное, но очень скучное. По этому я решил как то автоматизировать этот процесс. Читать дальше
Блог им. duke565 → Скрипт для сортировки файлов(изображений) , собирающий их в отдельный папки в зависимости от даты
Строго не судите. Просто родственник попросил сделать за ничего=) Имеются конечно косяки, а в целом работает
#!/usr/bin/env python
# -*- coding: utf-8 -*-
##########################################################################################################
'''
by duke565
Скрипт для сортировки изображений. Собирает файлы из папок и подпапок и разбрасывает их
по папкам указывая на них дату создания'''
##########################################################################################################
import os
from shutil import move
import time
##########################################################################################################
dirname = '/home/duke565/splav_2/' # основаная директория
try:
newdir = '/home/duke565/splavS/' # куда сложить
OrigNewDir = newdir
except:
newdir = dirname
def image_sort(dirname, newdir, recur= 0):
if not recur:print 'sorting started ...'
else: print 'sorting started in %s...'%dirname
if not newdir: newdir = dirname
imagelist = []
if os.path.isdir(dirname): #если это папка то
for x in os.listdir(dirname):
absx = dirname+os.sep+x # absx - путь до файла
if os.path.isfile(absx):
imagelist.append(absx) # если это файл, то записывает путь в лист
else:
image_sort(absx, newdir+os.sep+x, recur=1) #
for name in imagelist:
try:
file_date = time.localtime(os.stat(name).st_mtime)
except EnvironmentError, error:
print 'seems error: %s with '%error, name, '/n'
continue
imdir = '%s--%02d--%02d'%(file_date.tm_year,file_date.tm_mon,file_date.tm_mday)
imdir = os.path.join(OrigNewDir,imdir)
if os.path.split(dirname)[-1] == os.path.split(imdir)[-1]:
continue
elif not os.path.exists(imdir):
print 'making dir %s'%imdir
os.makedirs(imdir)
head,tail = os.path.split(name) # split orig path
replica = os.path.join(imdir,tail) #path file in new folder
if os.path.isfile(replica): # if file true then rename old
to_ext = '.JPG'
if to_ext[0] != '.':
to_ext = '.'+to_ext
root, ext = os.path.splitext(tail)
print "Renaming", tail, "to", root+'_1'+ext
path_orig = os.path.join(head, tail)
path_new = os.path.join(head, root+'_1'+to_ext)
os.rename(path_orig, path_new)
imagelist.append(path_new)
else:
try:
print '\n MOVE "%s" "%s"'%(name,imdir)
move(name,imdir)
except EnvironmentError:
print '\n Error with '+ name,
if not recur:
for root, dirs, files in os.walk(dirname):
if not files:
for name in dirs:
os.rmdir(os.path.join(root,name))
print 'sorting completed!'
image_sort(dirname, newdir)
Блог им. duke565 → Скрипт для сортировки файлов(изображений) , собирающий их в отдельный папки в зависимости от даты
#!/usr/bin/env python
# -*- coding: utf-8 -*-
##########################################################################################################
'''
by duke565
Скрипт для сортировки изображений. Собирает файлы из папок и подпапок и разбрасывает их
по папкам указывая на них дату создания'''
##########################################################################################################
import os
from shutil import move
import time
##########################################################################################################
dirname = '/home/duke565/splav_2/' # основаная директория
try:
newdir = '/home/duke565/splavS/' # куда сложить
OrigNewDir = newdir
except:
newdir = dirname
def image_sort(dirname, newdir, recur= 0):
if not recur:print 'sorting started ...'
else: print 'sorting started in %s...'%dirname
if not newdir: newdir = dirname
imagelist = []
if os.path.isdir(dirname): #если это папка то
for x in os.listdir(dirname):
absx = dirname+os.sep+x # absx - путь до файла
if os.path.isfile(absx):
imagelist.append(absx) # если это файл, то записывает путь в лист
else:
image_sort(absx, newdir+os.sep+x, recur=1) #
for name in imagelist:
try:
file_date = time.localtime(os.stat(name).st_mtime)
except EnvironmentError, error:
print 'seems error: %s with '%error, name, '/n'
continue
imdir = '%s--%02d--%02d'%(file_date.tm_year,file_date.tm_mon,file_date.tm_mday)
imdir = os.path.join(OrigNewDir,imdir)
if os.path.split(dirname)[-1] == os.path.split(imdir)[-1]:
continue
elif not os.path.exists(imdir):
print 'making dir %s'%imdir
os.makedirs(imdir)
head,tail = os.path.split(name) # split orig path
replica = os.path.join(imdir,tail) #path file in new folder
if os.path.isfile(replica): # if file true then rename old
to_ext = '.JPG'
if to_ext[0] != '.':
to_ext = '.'+to_ext
root, ext = os.path.splitext(tail)
print "Renaming", tail, "to", root+'_1'+ext
path_orig = os.path.join(head, tail)
path_new = os.path.join(head, root+'_1'+to_ext)
os.rename(path_orig, path_new)
imagelist.append(path_new)
else:
try:
print '\n MOVE "%s" "%s"'%(name,imdir)
move(name,imdir)
except EnvironmentError:
print '\n Error with '+ name,
if not recur:
for root, dirs, files in os.walk(dirname):
if not files:
for name in dirs:
os.rmdir(os.path.join(root,name))
print 'sorting completed!'
image_sort(dirname, newdir)
Строго не судите. Просто родственник попросил сделать за ничего=) Имеются конечно косяки, а в целом работаетЗдравствуй уважаемый читатель. Я хочу предложить тебе возможность постепенного, пошагового изучения универсального языка программирования — Python. Область применения данного языка действительно безгранична — программы, сайты, приложения для телефонов. Всё это можно делать используя язык Python.
Язык Python. Курс для начинающих
Уроки по языку будут появляться с периодичностью 1–2 раза в неделю. Каждый урок посвящён строго определённой тематики и является неким конспектом по данному вопросу с нескольких авторитетных ресурсов (книги, статьи, видео-уроки) и представлен в наиболее читаемом (по мнению автора) виде. Список уже написанных уроков ты сможешь найти чуть ниже. А пока я расскажу как следить за данным курсом.
Вариантов несколько:
1. У курса есть свой собственный RSS канал, на который я рекомендую
Здравствуйте, друзья!
Порой встают задачи, когда нужно выполнять некоторые задания в фоновом режиме и получать результат их выполнения. Иногда задачи требуется распределять между серверами, но ещё чаще их необходимо ставить в очередь.
Для этого, и много другого существует замечательный проект Celery. Он позволяет без особого труда превращать обычные функции в т.н. tasks.
Доброго времени суток, уважаемые посетители сайта python.su! Хочу сообщить вам, что несмотря на многие негативные и недоверчивые отзывы об альфа версии операционной системы POP мы готовим вторую версию системы. Этот будет Beta релиз, в который мы включили нашу новую разработку - Python Office Project! Итак, наши планы:
-
Веб-браузер на питоне.
Офисный пакет на питоне - СДЕЛАНО (В Beta версии)!
X-сервер на питоне.
Ядро на питоне.
Обогнать по популярности Ubuntu и со временем Windows и занять доминирующее положение на рынке операционных систем!
У меня есть блог, в котором я выкладываю разные материалы относительно Python'а. На данный момент в большинстве своем это переводы документации с примерами.
Думаю ресурc может быть очень полезен, добро пожаловать:
Эта статья предназначена для новичков в мире Python. Статья является переводом статьи "
Когда переходишь с одного языка на другой, некоторые вещи лучше было бы не знать вовсе (см.