вторник, 10 июля 2012 г.

Attach USB dev to VirtualBox in cron

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, commands, time, datetime
#read is dev is attach??
def checkdev():
 a = commands.getoutput('vboxmanage showvminfo officexp | grep MF4010')
 if a:
  mylog("Есть устройство")
  sys.exit()

def getUUID():
 uuid = commands.getoutput('vboxmanage list usbhost | grep UUID').split(' ')[-1]
 if not uuid:
  mylog("Устройство не подключено физически к компьютеру или выключено")
  sys.exit()
 mylog(uuid)
 return uuid

def addUUIDtoVBox():
 uuid = getUUID()
 mylog("Подключаю устройство "+uuid+" к виртуальной машине")
 command = 'vboxmanage controlvm officexp usbattach '+uuid
 uuid = commands.getoutput(command)

def mylog(mess):
 mess = datetime.datetime.now().__str__()+" "+mess+"\n"
 print mess
 f = open("/home/serg/pub/scanner/scannerlog.txt", 'a')
 f.write(mess)
 f.close()

while 1:
 checkdev()
 time.sleep(0.5)
 addUUIDtoVBox()
 time.sleep(1)
P.S. Это писалось из-за того, что у девайса меняется UUID. И немаловажный нюанс - девайс один единственный. Для большего количества надо немного изменить getUUID()

воскресенье, 17 июня 2012 г.

шпаргалка по Python

Не судите строго, тут будут вещи которыми я пользуюсь редко и постоянно вспоминаю их тратя время...

Способы удалить повторяющиеся элементы:
1. Единственный минус - не сохраняется порядок элементов.
myList = list(set(myList)) 

Автоматическое определение кодировки.

маленькая шпаргалка по sql

Удалить все дублирующие записи из таблицы products

DELETE FROM products WHERE id NOT IN (SELECT MIN(id) FROM products GROUP BY столбец(ы) с повторяющимися данными)

четверг, 31 мая 2012 г.

Linux, конвертируем mkv в avi

**********************************************
Данная статья - это кросспостинг с http://my.runtu.org/blog/hawk/linux-konvertiruem-mkv-v-avi
Оригинал статьи ,доступен для прочтения здесь: http://unixa.ru/linux/linux-konvertiruem-mkv-v-avi.html

********************************************
Модно стало последнее время фильмы в mkv загонять, но к сожалению данный формат не понимают большинство DVD плееров. Благо есть Linux, в котором делается все это очень просто и легко одной командой:
mencoder /path/file.mkv -oac mp3lame -ovc copy -o /path/file.avi
Команда перекодирует mkv-файл в mpeg4 с mp3 звуком.
Если mencoder не установлен, то исправим это:
$sudo apt-get install mencoder
На самом деле mencoder имеет множество опций, почитать о которых можно в man mencoder.
Можно например перекодировать видео XVIDом (должен присутствовать в системе) с нужным битрейдом:
$mencoder /path/file.mkv -oac mp3lame -ovc xvid -xvidencopts vhq=1:bitrate=1250 -o /path/file.avi
Можно еще поколдовать с опциями и к примеру обрезать черные поля с помощью фильтра crop, а с помощью scale можно смаштабировать картинку и т.д.

суббота, 12 мая 2012 г.

ReSize fotos in folder в 10 потоков

#coding: UTF-8
import threading, Queue, os
from PIL import Image

queue = Queue.Queue() # создаем очередь 
THREADS = 10

for i in os.listdir('.'):
    if i.split('.')[-1] == 'JPG':
        queue.put(Image.open(i))

def chage_file(img):
    #узнать ориентацию файла
    print 'Открытие файла ' + img.filename
    i_size = img.size
    if i_size[0] > i_size[1]: # если больше то 800х600
        #изменить размер
        r_img = img.resize((800,600), Image.ANTIALIAS)
    else:
        r_img = img.resize((600,800), Image.ANTIALIAS)
        #переименовать и сохранить
    print 'Сохранение файла' + img.filename
    r_img.save('NEW_'+img.filename)

def repeat():  
    while True:  
        try:  
            item = queue.get_nowait() # ждём данные  
        except Queue.Empty:  
            break  
        chage_file(item) # передаем данные в нашу функцию  
        #time.sleep(0.5)  
        queue.task_done() # задача завершена  

for tr in xrange(THREADS):
    t = threading.Thread(target=repeat) # создаем нить
    t.start()

queue.join()

четверг, 10 мая 2012 г.

ReSize fotos in folder

#coding: UTF-8
from PIL import Image
import os
def chage_file(img):
    #узнать ориентацию файла
    print 'Открытие файла ' + img.filename
    i_size = img.size
    if i_size[0] > i_size[1]: # если больше то 800х600
        #изменить размер
        r_img = img.resize((800,600), Image.ANTIALIAS)
    else:
        r_img = img.resize((600,800), Image.ANTIALIAS)
    #переименовать и сохранить
    print 'Сохранение файла'
    r_img.save('NEW_'+img.filename)

def resize_file(orientation, img):
    print 'Изменение размера файла'
    if orientation:
        return img.resize((800,600), Image.ANTIALIAS)
    else:
        return img.resize((600,800), Image.ANTIALIAS)
kolvo_files = 0

for i in os.listdir('.'):
    if i.split('.')[-1] == 'JPG':
        kolvo_files += 1
        chage_file(Image.open(i))
print "Количество обработанных файлов = ", kolvo_files