fcntl substitute on Windows
我收到了一个使用标准库中的
我有没有办法在程序中做一个小改动,使它在Windows上工作?
windows上的
换言之,将大量用户模块移植到Windows中并不容易。它要求您分析每个
还有一种可能性是,某些使用
如果您提供有关
fcntl模块仅用于锁定固定文件,因此假设您不尝试多次访问,这可能是一个可接受的解决方法。把这个模块放在你的
尝试将此模块仅用于Windows中的开发/测试目的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def fcntl(fd, op, arg=0): return 0 def ioctl(fd, op, arg=0, mutable_flag=True): if mutable_flag: return 0 else: return"" def flock(fd, op): return def lockf(fd, operation, length=0, start=0, whence=0): return |
虽然这并不能立即帮助您,但有一种替代方法可以同时用于Unix(FCNTL)和Windows(Win32 API调用),称为:PortalLocker
它将自己描述为一个跨平台(POSIX/NT)API,用于针对Python的集群式文件锁定。它基本上将fcntl映射到win32 api调用。
http://code.activestate.com/recipes/65203/上的原始代码现在可以作为单独的包安装-https://pypi.python.org/pypi/portallocker