首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当我使用pydicom时,错误printed..IndexError:列表索引超出范围

当我使用pydicom时,错误printed..IndexError:列表索引超出范围
EN

Stack Overflow用户
提问于 2018-08-13 16:02:54
回答 2查看 1.8K关注 0票数 0

使用pydicom尝试读取测试文件,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
from pydicom.data import get_testdata_files

pass_dicom = "CT-MONO2-16-ankle.dcm"
filename = get_testdata_files(pass_dicom)[0]

我得到一个错误

代码语言:javascript
代码运行次数:0
运行
复制
Traceback (most recent call last):
  File "t.py", line 4, in <module>
    filename = get_testdata_files(pass_dicom)[0]
IndexError: list index out of range

请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2019-08-27 08:52:48

如果您要读入单个DICOM文件,请使用pydicom.data.data_manager.get_files方法。您需要提供两个参数: base和pattern。根据文档,base是作为字符串进行递归搜索的基目录,pattern是用于过滤文件的字符串模式(默认为"*")。对于base,输入DICOM图像所在位置的完整路径(不包括文件名),对于pattern,输入DICOM图像名称。结果将是一个只有一个元素的列表,所以一定要在最后写上[0]

所以,

代码语言:javascript
代码运行次数:0
运行
复制
    import pydicom
    import pydicom.data
    base = "path/to/folder/containing/DICOM/file"
    pass_dicom = "CT-MONO2-16-ankle.dcm"
    filename= pydicom.data.data_manager.get_files(base,pass_dicom)[0]
票数 5
EN

Stack Overflow用户

发布于 2018-08-24 20:49:52

get_testdata_files在您的python安装目录下的lib\site-packages\pydicom\data\test_files中查找文件。

"CT-MONO2-16-ankle.dcm“似乎不在提供的示例文件中(至少我没有在pydicom 1.1.0中提供它)。因此,get_testdata_files返回一个空列表([]),当您尝试获取第0项时,它会引发异常,因为没有第0项。

将来,在调试这类错误时,请考虑分解代码。一旦您发现get_testdata_files(pass_dicom)[0]有问题,请尝试get_testdata_files(pass_dicom)。看看它的结果是什么,为什么。

请记住,pydicom源代码可以在线获得并安装在您自己的计算机上,因此您总是可以看到(例如) get_testdata_files正在尝试做什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51817735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档