#!/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)