小编use*_*818的帖子

在linux上用python将文件写入usb

如果问题是如此愚蠢,我很抱歉,但我是linux和python的新手.关键是我需要编写一个python脚本来检测连接的usb棒并将文件写入其中.我使用的是opensuse(但是在任何Linux发行版中,脚本都可以使用.)在理想情况下.如果安装了usb,当前版本可以检测usb并写入文件.但是在我的机器上只有在文件管理器中浏览它时才会安装usb.直到那个usb被检测为分离但没有挂载点.那么,我如何强制系统挂载usb或者如何使用devname或devpath或其他信息来编写一个文件,我可以从hal manager获取.我不能使用"mount"命令,因为它需要root权限

简化源代码:

import dbus, gobject, os

class DeviceAddedListener:
    def __init__(self):
        self.bus = dbus.SystemBus()
        self.hal_manager_obj = self.bus.get_object( "org.freedesktop.Hal", "/org/freedesktop/Hal/Manager")
        self.hal_manager = dbus.Interface(self.hal_manager_obj, "org.freedesktop.Hal.Manager")
        self.hal_manager.connect_to_signal("DeviceAdded", self.added)

    def show(self, name, udi):
        d_object = self.bus.get_object('org.freedesktop.Hal', udi)
        d_interface = dbus.Interface(d_object,'org.freedesktop.Hal.Device')

        if d_interface.QueryCapability("volume"):
            print name
            props = [ "block.device", "volume.label",  "volume.is_mounted", "volume.mount_point", "volume.size"]
            for p in props:
                print '\t', p, " = ",
                try:
                    print d_interface.GetProperty(p)
                except:
                    print "Fail"

    def added(self, udi): 
        self.show("DeviceAdded", udi)
        self.bus.add_signal_receiver(self.property_modified,
            "PropertyModified",
            "org.freedesktop.Hal.Device", 
            "org.freedesktop.Hal",
            udi,
            path_keyword = "sending_device" )

    def property_modified(self, …
Run Code Online (Sandbox Code Playgroud)

python usb file

5
推荐指数
1
解决办法
3243
查看次数

标签 统计

file ×1

python ×1

usb ×1