pythonmkdir语法错误_Python mkdir一个有难度的问题
Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。
使用 inotify 很简单:创建一个文件描述符,附加一个或多个监视器(一个监视器 是一个路径和一组事件),然后使用 read 方法从描述符获取事件。read 并不会用光整个周期,它在事件发生之前是被阻塞的。
更好的是,因为 inotify 通过传统的文件描述符工作,您可以利用传统的 select 系统调用来被动地监控监视器和许多其他输入源。两种方法 — 阻塞文件描述符和使用 select— 都避免了繁忙轮询。
python对应的监听文件事件的lib为pyinotify ,由于mac上安装不了inotify,所以直接在网上找的代码,供题主参考;原连接为:http://www.tuicool.com/articles/fQ7bUr;
思路:通过pyinotify监听文件事件,通过轮询文件事件,来做相应的处理;按照生产者消费者的模型处理,生产者轮询文件事件,放进共享队列;消费者轮询消费共享队列中的数据。
inotify is not available on macosx-10.11-intel
import os
import datetime
import pyinotify
import logging
class MyEventHandler(pyinotify.ProcessEvent):
logging.basicConfig(level=logging.INFO,filename='/var/log/monitor.log')
#自定义写入那个文件,可以自己修改
logging.info("Starting monitor...")
def process_IN_ACCESS(self, event):
print "ACCESS event:", event.pathname
logging.info("ACCESS event : %s %s" % (os.path.join(event.path,event.name),datetime.datetime.now()))
def process_IN_ATTRIB(self, event):
print "ATTRIB event:", event.pathname
logging.info("IN_ATTRIB event : %s %s" % (os.path.join(event.path,event.name),datetime.datetime.now()))
def process_IN_CLOSE_NOWRITE(self, event):
print "CLOSE_NOWRITE event:", event.pathname
logging.info("CLOSE_NOWRITE event : %s %s" % (os.path.join(event.path,event.name),datetime.datetime.now()))
def process_IN_CLOSE_WRITE(self, event):
print "CLOSE_WRITE event:", event.pathname
logging.info("CLOSE_WRITE event : %s %s" % (os.path.join(event.path,event.name),datetime.datetime.now()))
def process_IN_CREATE(self, event):
print "CREATE event:", event.pathname
logging.info("CREATE event : %s %s" % (os.path.join(event.path,event.name),datetime.datetime.now()))
def process_IN_DELETE(self, event):
print "DELETE event:", event.pathname
logging.info("DELETE event : %s %s" % (os.path.join(event.path,event.name),datetime.datetime.now()))
def process_IN_MODIFY(self, event):
print "MODIFY event:", event.pathname
logging.info("MODIFY event : %s %s" % (os.path.join(event.path,event.name),datetime.datetime.now()))
def process_IN_OPEN(self, event):
print "OPEN event:", event.pathname
logging.info("OPEN event : %s %s" % (os.path.join(event.path,event.name),datetime.datetime.now()))
def main():
# watch manager
wm = pyinotify.WatchManager()
wm.add_watch('/tmp', pyinotify.ALL_EVENTS, rec=True)
#/tmp是可以自己修改的监控的目录
# event handler
eh = MyEventHandler()
# notifier
notifier = pyinotify.Notifier(wm, eh)
notifier.loop()
if __name__ == '__main__':
main()
[root@centos6 monitor-folder]# python total-monitor.py
OPEN event: /tmp/.ICE-unix
CLOSE_NOWRITE event: /tmp/.ICE-unix
OPEN event: /tmp
CLOSE_NOWRITE event: /tmp
OPEN event: /tmp
CLOSE_NOWRITE event: /tmp
DELETE event: /tmp/aa
DELETE event: /tmp/adduser.conf
DELETE event: /tmp/adjtime
DELETE event: /tmp/aliases
DELETE event: /tmp/bash.bashrc
DELETE event: /tmp/bindresvport.blacklist
DELETE event: /tmp/environment
DELETE event: /tmp/fstab
DELETE event: /tmp/ipt.err
DELETE event: /tmp/ipt.out
DELETE event: /tmp/krb5.conf
DELETE event: /tmp/odbc.ini
DELETE event: /tmp/odbcinst.ini
DELETE event: /tmp/timezone
DELETE event: /tmp/ucf.conf
DELETE event: /tmp/warnquota.conf
DELETE event: /tmp/wgetrc
DELETE event: /tmp/xinetd.conf
CREATE event: /tmp/aa
OPEN event: /tmp/aa
ATTRIB event: /tmp/aa
CLOSE_WRITE event: /tmp/aa
CREATE event: /tmp/bb
OPEN event: /tmp/bb
ATTRIB event: /tmp/bb
CLOSE_WRITE event: /tmp/bb
CREATE event: /tmp/cc
OPEN event: /tmp/cc
ATTRIB event: /tmp/cc
CLOSE_WRITE event: /tmp/cc
上面是打印出来的监控状态,下面是我的操作代码:
[root@centos6 tmp]# ls
aa bash.bashrc ipt.err odbcinst.ini wgetrc
adduser.conf bindresvport.blacklist ipt.out timezone xinetd.conf
adjtime environment krb5.conf ucf.conf
aliases fstab odbc.ini warnquota.conf
[root@centos6 tmp]# rm -rf *
[root@centos6 tmp]# touch aa
[root@centos6 tmp]# touch bb
[root@centos6 tmp]# touch cc
[root@centos6 tmp]#
pythonmkdir语法错误_Python mkdir一个有难度的问题相关推荐
- pythonmkdir语法错误_Python:windows创建文件夹时出错操作系统.mkdir使用方括号
在Windows上,当我试图创建以下文件夹时:os.mkdir('H:\\__ Photos\\____Photos to be sorted\\[ Photo sorting process ]\\ ...
- python等号语法错误_Python干货:代码编写规范
本章节我们来讲述一下Python的编码规范,通过详细对代码编写规则以及命名规范等进行介绍. 1.编写规则 Python采用PEP 8 的编码规范,接下来会讲解一些我们在学习Python过程应该严格遵守 ...
- python在冒号处显示语法错误_python冒号错误语法无效
问题1 看看错误:File "", line 3 def__init__(self,name): ^ SyntaxError: invalid syntax 在def和__init ...
- python常见的语法错误_python编程中常见错误
python编程培训中常见错误 最后,我想谈谈使用更多python函数(数据类型.函数.模块.类等)时可能遇到的问题.由于篇幅有限,我们试图将其简化,特别是一些高级概念.有关更多详细信息,请阅读学习p ...
- python setup.py install 提示语法错误_python – 使用“’packages’:[],”安装setup.py时无效的语法...
我是编程新手,过去几周我一直在研究 python.大多数指令来自资源"学习 Python的艰难之路". 现在我的问题,我刚刚开始进行测验,基本上你已经完成并安装了自己的setup. ...
- python编程时显示语法错误_Python编程的10个经典错误及解决办法
接触了很多Python爱好者,有初学者,亦有转行人.不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极好的.下面,严小样儿为大家罗列出Python3十大经典错误及 ...
- python常见的语法错误_python常见语法错误有什么
本文主要整理了Python中常见的语法错误,需要的小伙伴可以学习. 1:TypeError: must be str, not int 类型错误name = '小王' age = 20 print(' ...
- python中print语法错误_Python 3.x中使用print函数出现语法错误(SyntaxError: invalid syntax)的原因...
在安装了最新版本的Python 3.x版本之后, 去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误: SyntaxErro ...
- python语法错误概述_python语法错误
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我是python中的新手,当我想在模块中编译代码时,我遇到语法错误:invail ...
最新文章
- 【linux命令】setterm控制终端属性命令(中英文)
- SQL基础学习总结:1(数据库)
- 【PC工具】离线地图图片地图瓦片下载神器map-download地图下载器
- php接收rs485的数据如何处理,为什么485不能连续接收?
- 事物 @Transactional
- linux系统安装python包_Linux系统安装Python
- HDU3534 给你一个树让你找出其中最长路径以及个数数
- mariadb安装_MariaDB CentOS 安装的时候如何确定 Repo 地址
- 【脑电信号】基于matlab小波变换脑电信号特征提取【含Matlab源码 511期】
- 计算机英语词汇的特点,计算机专业英语词汇特点.ppt
- 一键智能切割(分割)整轨wav、flac、ape音乐文件
- 把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩
- C99 designator ‘name’ outside aggregate initializer
- doevents raiseevent withevents
- 自我实现者共同的性格特征
- 基于51单片机的信号发生器设计
- IAR之IAR EWARM软件软件配置
- 第6章第9节:幻灯片背景:使用纹理和图像作为幻灯片的背景 [PowerPoint精美幻灯片实战教程]
- 使用Java快速实现进度条(转)
- 一篇文章上手SSH开发,单表全过程,全代码
热门文章
- 为什么大数据分析很重要
- c语言单片机循环程序,单片机c语言教程:C51循环语句
- java的连接 初始化_java类从加载、连接到初始化过程详解
- java编写万年历_怎么用JAVA编写万年历!
- 利用Caffe训练模型(solver、deploy、train_val)+python使用已训练模型
- python中函数 reshape(-1,1)
- H3C交换机配置DHCP服务器
- python爬取公众号,用最简单的方式爬虫
- vue文件上传 vue-simple-upload的使用方法
- Component 父子组件关系