从PosixPath,Python中读取DICOM对象

时间:2018-03-04 15:46:26

标签: python path pydicom

我有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'

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = Integer.parseInt(sc.nextLine()); switch ((1 <= num && num <= 5 ) ? 0 : (6 <= num && num <= 10) ? 1 : 2) { case 0: System.out.println("I'm between one and five inclusive."); break; case 1: System.out.println("I'm between 6 and 10 inclusive."); break; case 2: System.out.println("I'm not between one and five or 6 and 10 inclusive."); break; } } } 需要一个打开的文件对象或一个不是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

这会给你一个Posix路径:

  

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

BTW,迭代所有路径的pythonic方式看起来更像是这样:

 path_object.as_posix()