python怎样使用linux驱动_用Python检查Linux上的USB驱动器?

我试图用Python编写一个系统来检查USB驱动器上是否存在一个文件,如果没有驱动器,它将等待dbus系统注册一个新设备,然后再次检查。在

我要检查一下mtab。我要检查一下文件是否存在。我有dbus位在工作,但我目前正在努力解决的是,当驱动器注册时,它会从dbus位中脱离出来,这样我就可以检查mtab,然后检查文件。在

我希望这是有道理的。在

我将为糟糕的编码风格道歉-我只是刚刚开始。在

到目前为止,我得到的是:#!/usr/bin/env python

import string, time, os, dbus, gobject, sys

from dbus.mainloop.glib import DBusGMainLoop

def device_added_callback(device):

print ("Block device added. Check if it is partitioned")

usbdev = "".join(device.split("/")[5:6])

if usbdev.endswith("1") == 1:

print ("Block device is partitioned. Waiting for it to be mounted.")

# This is where I need to break out of the USB bit so I can check mtab and then check the file exits.

def waitforusb():

DBusGMainLoop(set_as_default=True)

bus = dbus.SystemBus()

proxy = bus.get_object("org.freedesktop.UDisks", "/org/freedesktop/UDisks")

iface = dbus.Interface(proxy, "org.freedesktop.UDisks")

devices = iface.get_dbus_method('EnumerateDevices')()

usbdev = iface.connect_to_signal('DeviceAdded', device_added_callback)

mainloop = gobject.MainLoop()

mainloop.run()

return usbdev

def checkusbispresent():

f = open("/etc/mtab")

lines = f.readlines()

f.close()

for line in lines:

mtpt = "".join(line.split()[1:2])

isthere = mtpt.find("media")

if isthere == 1:

return mtpt

def checkserialfile(mtpt):

_serialfile=mtpt+"/serial.lic"

if ( not os.path.isfile(_serialfile)):

print("Error: serial file not found, please download it now")

else:

print("Serial file found, attempting validation... ")

usbdrive = checkusbispresent()

if ( usbdrive is not None ):

checkserialfile(usbdrive)

else:

print ("USB drive is not present. Please add it now.")

added = waitforusb()

print added

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值