我正在尝试调试用户偶尔会锁定他们尝试打开的文件的问题。代码似乎具有正确的异常处理,但用户仍在报告查看错误消息。如何模拟锁定的文件以便我自己调试?
编辑:适用于Windows。
答案 0 :(得分:20)
答案 1 :(得分:8)
取决于,但万一,MS字锁 如果你不确定你的应用程序是否锁定文件并且它没有重新锁定: 只修改你的应用程序(创建一个testapp),永远不要关闭文件(并保持运行)
答案 2 :(得分:0)
我使用Windows API中的LockFileEx函数在Python中编写单元测试。这对我来说效果很好(带锁定目标的shutil.copy()失败)。
import win32con
import win32file
import pywintypes
p = "yourfile.txt"
f = file(p, "w")
hfile = win32file._get_osfhandle(f.fileno())
flags = win32con.LOCKFILE_EXCLUSIVE_LOCK | win32con.LOCKFILE_FAIL_IMMEDIATELY
win32file.LockFileEx(hfile, flags, 0, 0xffff0000, pywintypes.OVERLAPPED())
请参阅:https://msdn.microsoft.com/en-us/library/windows/desktop/aa365203%28v=vs.85%29.aspx
答案 3 :(得分:0)
我正在使用此命令提示符
type yourfile.txt | more
在yourfile.txt
内插入一个很长的“几页”文本,并希望通过| more
用管道传输来批量插入。
但是文件似乎已锁定,为什么?