List 当我使用pydicom时,error printed..indexer错误:列表索引超出范围
使用pydicom尝试读取测试文件,如下所示: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 =
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]