如何调用命令行命令(AFNI命令)?
How to call command line command (AFNI command)?
我正在尝试读取 dicom 文件中的 dicom header 标签。
现在,有两种方法可以读取此 dicom header 标签。
1) 在 python 中使用 pydicom 包,这显然在我的 python 安装版本上运行不佳 (python 3).
2) 或者当我通过命令行调用 AFNI 函数 'dicom_hinfo' 时,我可以获得 dicom 标签值。在终端调用afni函数的语法如下:
dicom_hinfo -标签 aaaa,bbbb filename.dcm
output:fgre
现在我应该如何在 python 脚本中调用此 dicom-info -tag aaaa,bbbb filename.dcm。
我想 subprocess 可能会起作用,但不确定在这种情况下如何使用它。
要从子进程中获取输出,您可以use check_output()
function:
#!/usr/bin/env python
from subprocess import check_output
tag = check_output('dicom_hinfo -tag aaaa,bbbb filename.dcm output:fgre'.split(),
universal_newlines=True).strip()
universal_newlines=True
用于在 Python 3 上获取 Unicode 文本(数据使用用户区域设置的字符编码进行解码)。
check_output()
假设 dicom_hinfo
打印到它的标准输出流 (stdout)。一些实用程序可能会直接打印到 stderr 或终端。可以修改代码以适应这种情况。
哦,这是由于使用 Pydicom 时出现语法错误。
我想访问 0019, 109c 标签。
语法应为:
ds[0x0019,0x109c].值。
不是 ds[aaaa,bbbb].value
我正在尝试读取 dicom 文件中的 dicom header 标签。 现在,有两种方法可以读取此 dicom header 标签。
1) 在 python 中使用 pydicom 包,这显然在我的 python 安装版本上运行不佳 (python 3).
2) 或者当我通过命令行调用 AFNI 函数 'dicom_hinfo' 时,我可以获得 dicom 标签值。在终端调用afni函数的语法如下:
dicom_hinfo -标签 aaaa,bbbb filename.dcm output:fgre
现在我应该如何在 python 脚本中调用此 dicom-info -tag aaaa,bbbb filename.dcm。 我想 subprocess 可能会起作用,但不确定在这种情况下如何使用它。
要从子进程中获取输出,您可以use check_output()
function:
#!/usr/bin/env python
from subprocess import check_output
tag = check_output('dicom_hinfo -tag aaaa,bbbb filename.dcm output:fgre'.split(),
universal_newlines=True).strip()
universal_newlines=True
用于在 Python 3 上获取 Unicode 文本(数据使用用户区域设置的字符编码进行解码)。
check_output()
假设 dicom_hinfo
打印到它的标准输出流 (stdout)。一些实用程序可能会直接打印到 stderr 或终端。可以修改代码以适应这种情况。
哦,这是由于使用 Pydicom 时出现语法错误。 我想访问 0019, 109c 标签。
语法应为:
ds[0x0019,0x109c].值。
不是 ds[aaaa,bbbb].value