从PosixPath,Python读取DICOM对象



我有20,000个PosixPath,每个指向不同的.dcm对象。我需要逐个读取 .dcm 对象。这是我到目前为止的代码:

from pathlib import Path
import glob
import dicom
data = Path('/data')
path_to_dcm_objects = list(data.glob('**/*.dcm'))
for i in len(path_to_dcm_objects):
record = dicom.read_file(path_to_dcm_objects[i])

当我想使用其 PosixPath 读取 .dcm 文件时,我收到错误:

AttributeError: 'PosixPath' object has no attribute 'read'

任何帮助将不胜感激。

dicom.read_file()需要一个打开的文件对象或一个字符串作为路径而不是Path实例。如果它不是字符串,它会将其视为打开的文件并尝试从中读取。

Path实例转换为字符串,str(path_object)

for i in len(path_to_dcm_objects):
record = dicom.read_file(str(path_to_dcm_objects[i]))

Path对象转换为字符串的帮助:

返回路径的字符串表示形式,适用于 传递给系统调用。

您还可以使用:

path_object.as_posix()

这为您提供了一个 Posix 路径:

返回带有正向 (/) 的路径的字符串表示形式 斜线。

顺便说一句,遍历所有路径的pythonic方式看起来更像这样:

for path_obj in data.glob('**/*.dcm'):
record = dicom.read_file(str(path_obj))

相关内容

  • 没有找到相关文章

最新更新