今天有同学问,用os模块的access()能否判断一个文件是否被占用?可见,os.access()返回的是文件读写属性,与文件是否被占用没有半毛钱关系。后来,群里有同学建议说,不妨用try尝试着open文件,如果成功,表示文件没有被占用,如果抛出异常,则表示文件被占用。结果表明,对同一个文件以写的方式打开多次,系统并没有抛出异常。究其原因,是因为文件被打开和文件被占用是完全两个不同的问题。顺便提醒一下,做上面的测试时,不要使用'w'的方式,否则文件内容会被清空。这个问题还是要回归到操作系统层面来解决,也就是依赖win32api模块。简单验证了一下,函数is_used()基本可用。
暂无评论