问题描述
我正在尝试设置看门狗以将新文件提供给 dcmread 函数,但似乎无法通过 PermissionError。
print("Watchdog received created event - % s." % event.src_path)
home = r'C:\Users\name\PycharmProjects\TEST_DCM_DIR'
fn = os.path.basename(event.src_path)
print(fn)
dcmpath = glob.glob(home + '\\' + fn)
print(dcmpath[0])
dcmpath2 = r'C:\Users\name\PycharmProjects\TEST_DCM_DIR\test.dcm'
print(dcmpath2)
ds = dcmread(dcmpath[0])
硬编码路径和变量路径都打印相同的文件路径,但是当我使用变量时,出现以下错误。
File "C:\Users\name\PycharmProjects\venv\lib\site-packages\pydicom\filereader.py",line 861,in dcmread
fp = open(fp,'rb')
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\name\\PycharmProjects\\TEST_DCM_DIR\\test.dcm'
当我通过硬编码路径时,代码工作正常,这让我认为这不是权限问题(来自搜索 stackoverflow)。我希望这与我编译路径的方式有关。我试过 os.path.join 方法 (dcmpath = os.path.join(home,fn)) 并使用 event.src_path 句柄也没有设法破解它。任何见解将不胜感激。我正在 Windows 机器上运行此代码。
编辑:问题似乎是文件在从复制中释放之前正在被读取。在将路径传递给 dcmread 之前添加 time.sleep(2) 行解决了这个问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)