#!/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()
Yami-Yami tech
вторник, 10 июля 2012 г.
Attach USB dev to VirtualBox in cron
воскресенье, 17 июня 2012 г.
шпаргалка по Python
Не судите строго, тут будут вещи которыми я пользуюсь редко и постоянно вспоминаю их тратя время...
Способы удалить повторяющиеся элементы:
1. Единственный минус - не сохраняется порядок элементов.
Автоматическое определение кодировки.
Способы удалить повторяющиеся элементы:
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 не установлен, то исправим это:
На самом деле mencoder имеет множество опций, почитать о которых можно в man mencoder.$sudo apt-get install 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
среда, 21 декабря 2011 г.
Первый опыт PyQt4
pyuic4 название_файла_с_кодом.py -o шаблон.ui
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'dialog1.ui'
#
# Created: Thu Dec 22 00:40:39 2011
# by: PyQt4 UI code generator 4.7.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
class Ui_MainDialog(object):
def setupUi(self, MainDialog):
MainDialog.setObjectName("MainDialog")
MainDialog.resize(400, 300)
self.newDialogButton = QtGui.QPushButton(MainDialog)
self.newDialogButton.setGeometry(QtCore.QRect(300, 260, 90, 27))
self.newDialogButton.setObjectName("newDialogButton")
self.retranslateUi(MainDialog)
QtCore.QMetaObject.connectSlotsByName(MainDialog)
def retranslateUi(self, MainDialog):
MainDialog.setWindowTitle(QtGui.QApplication.translate("MainDialog", "Main Dialog", None, QtGui.QApplication.UnicodeUTF8))
self.newDialogButton.setText(QtGui.QApplication.translate("MainDialog", "New Dialog", None, QtGui.QApplication.UnicodeUTF8))
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'dialog2.ui'
#
# Created: Thu Dec 22 00:40:51 2011
# by: PyQt4 UI code generator 4.7.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
class Ui_SecondDialog(object):
def setupUi(self, SecondDialog):
SecondDialog.setObjectName("SecondDialog")
SecondDialog.resize(400, 300)
self.retranslateUi(SecondDialog)
QtCore.QMetaObject.connectSlotsByName(SecondDialog)
def retranslateUi(self, SecondDialog):
SecondDialog.setWindowTitle(QtGui.QApplication.translate("SecondDialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
import sys from PyQt4 import QtGui, QtCore from dialog1 import Ui_MainDialog from dialog2 import Ui_SecondDialog class MainDialig(QtGui.QWidget): def __init__(self, parent=None): super(MainDialig,self).__init__(parent) self.secondDialog = SecondDialog(parent) self.ui = Ui_MainDialog() self.ui.setupUi(self) self.ui.newDialogButton.clicked.connect(self.showSecondDialog) def showSecondDialog(self): self.secondDialog.show() class SecondDialog(QtGui.QWidget): def __init__(self, parent=None): super(SecondDialog,self).__init__(parent) self.ui = Ui_SecondDialog() self.ui.setupUi(self) def main(): app = QtGui.QApplication(sys.argv) mainWindow = MainDialig() mainWindow.show() sys.exit(app.exec_()) if __name__=='__main__': main()
from dialog1 import Ui_MainDialog from dialog2 import Ui_SecondDialog
class MainDialig(QtGui.QWidget): def __init__(self, parent=None): super(MainDialig,self).__init__(parent)
self.secondDialog = SecondDialog(parent)
self.ui = Ui_MainDialog() self.ui.setupUi(self)
self.ui.newDialogButton.clicked.connect(self.showSecondDialog)
def showSecondDialog(self):
self.secondDialog.show()
class SecondDialog(QtGui.QWidget): def __init__(self, parent=None): super(SecondDialog,self).__init__(parent) self.ui = Ui_SecondDialog() self.ui.setupUi(self)
def main(): app = QtGui.QApplication(sys.argv) mainWindow = MainDialig() mainWindow.show() sys.exit(app.exec_()) if __name__=='__main__': main()
mainWindow = MainDialig() mainWindow.show()
import sys from PyQt4 import QtGui, QtCore from dialog1 import Ui_MainDialog class MainDialig(QtGui.QWidget): def __init__(self, parent=None): super(MainDialig,self).__init__(parent) self.ui = Ui_MainDialog() self.ui.setupUi(self) ############## #Добавление функционала к элементам окна ############## def main(): app = QtGui.QApplication(sys.argv) mainWindow = MainDialig() # знак "=" не зря не выделен. Дело в том, что такая строка обязательна, но меняется то, что выделено. mainWindow.show() sys.exit(app.exec_()) if __name__=='__main__': main()
Подписаться на:
Комментарии (Atom)