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

List 当我使用pydicom时,error printed..indexer错误:列表索引超出范围,list,indexing,pydicom,List,Indexing,Pydicom,使用pydicom尝试读取测试文件,如下所示: from pydicom.data import get_testdata_files pass_dicom = "CT-MONO2-16-ankle.dcm" filename = get_testdata_files(pass_dicom)[0] 我犯了一个错误 Traceback (most recent call last): File "t.py", line 4, in <module> filename =

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

from pydicom.data import get_testdata_files

pass_dicom = "CT-MONO2-16-ankle.dcm"
filename = get_testdata_files(pass_dicom)[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
回溯(最近一次呼叫最后一次):
文件“t.py”,第4行,在
文件名=获取测试数据文件(通过dicom)[0]
索引器:列表索引超出范围

请提供帮助。

获取测试数据文件
在python安装下的
lib\site packages\pydicom\data\test\u文件中查找文件

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

将来,在调试这些错误时,考虑分解代码。一旦发现

get\u testdata\u文件(pass\u dicom)[0]
有问题,请尝试
get\u testdata\u文件(pass\u dicom)
。看看它的结果是什么,为什么


请记住,pydicom源代码可以在线获得并安装在您自己的计算机上,因此您可以随时看到(例如)您试图执行的操作。

get\u testdata\u files
在python安装下的
lib\site packages\pydicom\data\test\u files
中查找文件

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

将来,在调试这些错误时,考虑分解代码。一旦发现

get\u testdata\u文件(pass\u dicom)[0]
有问题,请尝试
get\u testdata\u文件(pass\u dicom)
。看看它的结果是什么,为什么


请记住,pydicom源代码可以在线获取并安装在您自己的计算机上,因此您可以随时看到(例如)
get\u testdata\u files
正在尝试执行的操作。

如果您希望读取单个DICOM文件,请使用
pydicom.data.data\u manager.get\u files
方法。您需要提供两个参数:base和pattern。根据文档,base是作为字符串递归搜索的基本目录,pattern是过滤文件的字符串模式(默认为“*”)。为“基本”输入DICOM图像所在位置的完整路径(不包括文件名),并为“图案”输入DICOM图像名称。结果将是一个只包含一个元素的列表,因此请确保在末尾写入
[0]

所以


如果要读取单个DICOM文件,请使用
pydicom.data.data\u manager.get\u files
方法。您需要提供两个参数:base和pattern。根据文档,base是作为字符串递归搜索的基本目录,pattern是过滤文件的字符串模式(默认为“*”)。为“基本”输入DICOM图像所在位置的完整路径(不包括文件名),并为“图案”输入DICOM图像名称。结果将是一个只包含一个元素的列表,因此请确保在末尾写入
[0]

所以


请以实际文本而不是图像的形式提供代码。我编辑了您的问题以包含代码,正如@Shai所建议的。请注意,在其他方面这并不是一个很好的问题-没有迹象表明您尝试了什么,并且代码中包含了一些无关的元素。当你问下一个问题时,请考虑阅读和应用。这将有助于回答者帮助您。请以实际文本而不是图像的形式提供代码。我按照@Shai的建议编辑了您的问题以包含代码。请注意,在其他方面这并不是一个很好的问题-没有迹象表明您尝试了什么,并且代码中包含了一些无关的元素。当你问下一个问题时,请考虑阅读和应用。这将有助于回答者帮助你。
    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]