ctw6av
(usa Nenhuma)
Enviado em 13/08/2017 - 17:31h
Há também o dbus que pode ser usado para localizar e/ou esperar o pendrive ser inserido. Veja a saída:
Esperando dispositivo ser inserido...
Dispositivo Encontrado: TOSHIBA-MQ01ABD032-83N1COP4T
---------------
Nova Partição Encontrada: sdb1
Ponto de Montagem: /media/ctw6av/PS3
---------------
Nova Partição Encontrada: sdb2
Ponto de Montagem: /media/ctw6av/BACKUP
Dispositivo Encontrado: SD16G-0x56e3b9e8
---------------
Nova Partição Encontrada: mmcblk0
Ponto de Montagem: /media/ctw6av/0403-0201
Isto foi feito com o código abaixo. Altere como quiser:
#!/usr/bin/env python3
from dbus.mainloop.glib import DBusGMainLoop
from gi.repository import GLib
from threading import Thread
from os.path import basename
from string import digits
import time
import dbus
class ListenTo(Thread):
def __init__(self, callback_function):
super().__init__()
if not callable(callback_function):
raise TypeError("Object is not callabble...")
DBusGMainLoop(set_as_default=True)
self.bus = dbus.SystemBus()
self.signal = "InterfacesAdded"
self.interface = "org.freedesktop.DBus.ObjectManager"
self.bus.add_signal_receiver(callback_function, self.signal, self.interface)
def run(self):
loop = GLib.MainLoop()
loop.run()
def get_mount_point(device):
with open("/proc/mounts", "r") as partitions:
for info in partitions:
for path in info.split():
if device in basename(path):
properties = info.split()
return properties[1]
def signal_receive(path=None, properties=None):
if "org.freedesktop.UDisks2.Drive" in properties:
info = properties["org.freedesktop.UDisks2.Drive"]
print("\nDispositivo Encontrado:", info["Id"])
if "org.freedesktop.UDisks2.Block" in properties:
time.sleep(1)
device = basename(path)
for char in device:
if char in digits:
print("---------------")
print("Nova Partição Encontrada:", device)
print("Ponto de Montagem:", get_mount_point(device))
if __name__ == '__main__':
listener = ListenTo(signal_receive)
listener.start()
print("Esperando dispositivo ser inserido...")
______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro:
http://biebian.sourceforge.net/