从Python PosixPath读取DICOM对象

从Python PosixPath读取DICOM对象,python,path,pydicom,Python,Path,Pydicom,我有20000个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_

我有20000个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
实例转换为带有
str(Path\u对象)
的字符串:

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

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

您还可以使用:

 path_object.as_posix()
这将为您提供一个Posix路径:

使用forward(/)返回路径的字符串表示形式 砍

顺便说一句,在所有路径上迭代的python方法看起来更像这样:

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

你确定这不是意味着导入pydicom吗?@MikeMüller我使用了pip install pydicom来安装。然后我使用
importdicom
来使用该模块。系统无法识别
导入pydicom
我知道此代码使用的是pydicom的旧版本,自2017年1月起不再维护。您可以通过从PyPI安装
pydicom
来访问新的pydicom功能和API。有关更多信息,请参阅pydicom.readthedocs.org上的“转换到pydicom 1.x”一节。@MikeMüller我将对此进行检查。非常感谢!正是我要找的!我很感激!
for path_obj in data.glob('**/*.dcm'):
    record = dicom.read_file(str(path_obj))