我正在尝试调试一个问题,用户偶尔会锁定他们试图打开的文件。代码似乎有正确的异常处理,但用户仍然报告看到错误消息。我如何模拟一个锁定的文件,以便我可以自己调试它?
try this:
( >&2 pause ) >> yourfile.txt
>>
以追加模式打开yourfile.txt
参考
视情况而定,但以防MS word锁定
如果你想知道你的应用程序是否锁了文件而不释放锁:
只需稍微修改一下您的应用程序(创建一个testapp),并且永远不要关闭文件(并保持它运行)
我使用来自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
我正在使用这个命令提示符
type yourfile.txt | more
在yourfile.txt
中插入一个很长的"few pages"文本,并希望通过| more
管道批量插入。但是文件似乎被锁住了,有什么原因吗?