我像这样使用Gio monitor_file。
def callback(*args):
print 'ok'
gio_pointer = Gio.File.new_for_path(os.environ['HOME']+'/temp')
monitor = gio_pointer.monitor_file(Gio.FileMonitorFlags.NONE, None)
monitor.connect("changed", callback)修改后的文件不会发生任何变化。Gio适用于其他文件操作,如创建、读取和写入。
我用错了吗,或者这可能是系统问题?
我的环境: Gtk显卡,Python,Linux Ubuntu 12.10,普通pc。
发布于 2014-01-19 05:12:14
它可能会失败,因为gobject的主循环是信号工作所必需的。
下面的完整示例适用于我:
import os
from gi.repository import Gtk, Gio
# This allows Ctrl+C to exit the program
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
def callback(m, f, o, event):
# Without this check, multiple 'ok's will be printed for each file change
if event == Gio.FileMonitorEvent.CHANGES_DONE_HINT:
print ('ok')
gio_file = Gio.File.new_for_path(os.environ['HOME']+'/temp')
monitor = gio_file.monitor_file(Gio.FileMonitorFlags.NONE, None)
monitor.connect("changed", callback)
Gtk.main()https://stackoverflow.com/questions/16451922
复制相似问题