为了防止别人修改你的文件,通常在写入时,会加上一个锁。使用 *** 作系统特有的open方法才可以加锁。
可以使用portalocker,filelock 也可以使用posixfile,
os.open能不能成呢?按理可以。不过C语言里使用fopen没有这个功能,不过使用fcntl里的open可以。
你加了锁后,别人就不能写。文件处于占用状态。
另外 *** 作系统都有一种文件监控机制的消息通知。具体忘记了。在unix与windows都有这个功能。当别人程序修改了某个文件,你会立刻得到消息通知。
补充一些教程。os.open还是可以用的。
os.open(file, flags[, mode])
Parameters
file -- File name to be opened.
flags -- This is the following constants are options for the flags. They can be combined using the bitwise OR operator |. Some of them are not available on all platforms.
os.O_RDONLY:open for reading only
os.O_WRONLY:open for writing only
os.O_RDWR : open for reading and writing
os.O_NONBLOCK: do not block on open
os.O_APPEND:append on each write
os.O_CREAT: create file if it does not exist
os.O_TRUNC: truncate size to 0
os.O_EXCL: error if create and file exists
os.O_SHLOCK:atomically obtain a shared lock
os.O_EXLOCK:atomically obtain an exclusive lock
os.O_DIRECT:eliminate or reduce cache effects
os.O_FSYNC :synchronous writes
os.O_NOFOLLOW: do not follow symlinks
mode -- This work in similar way as it works for chmod() method.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)