首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSV文件。阅读。没有柱结构。通用电气。CT协议

CSV文件。阅读。没有柱结构。通用电气。CT协议
EN

Stack Overflow用户
提问于 2022-04-21 13:46:32
回答 1查看 33关注 0票数 0

我有CT扫描仪CT协议的CSV文件。

我想阅读CT扫描的参数,并将数据转换到一个新的表格中进行比较。但是文件的结构不是列结构。我可以说它是一个字符串结构。

以下是前两项协议的例子:

成人头部1.1头(成人) 1.25

考试剂量设置,ExamCtdi,ExamDLP,56.1357,8211.25

系列1,童子军,HeadFirst,仰卧AutoStore,门控,SeriesLevelCopy,注射器,不,不

扫描,kV,mA,开始,结束,平面,消息,光,定时器,1,120,20,S180,I180,0,0,不,不

系列2,轴向,HeadFirst,仰卧AutoStore,门控,SeriesLevelCopy,SmartPrep,活检,注射器,不

系列2 1扫描设置组,图像、速度、类型、开始、结束、粗、速、行、Int、HiRes、梭、Tilt、SFOV、kV、mA、消息、光、定时器、CTDI、CTDI、DLP、DLP、1,1161、1.0、Helical、S150.0、I130.01.25、1.25、5.625、1.25、No、S0.0、大型、120 340、No、NA、56.1357、NA、8211.25

系列2第1组雷管1设置组,DFOV,A/P,R/L,过滤器,类型,Vari,D3D,DMPR,Neuro,ASIR,IQEnhance,GSI,Flip,1,50.0 D,A0.0 D,R0.0 D,标准,完整,不,无,不,不,没有,

系列3第1组Recon 2设置组、图像、类型、开始、结束、厚度、Int、DFOV、A/P、R/L、过滤器、类型、ASIR、IQEnhanced、GSI、Flip、1,1161、Helical、S150.0 D、I1300.0 D、1.25、1.25、50.0 D、A0.0 D、R0.0 D、标准、完整、无、No、No、无

系列7第1组Recon 6设置组,图像、类型、开始、结束、厚度、Int、DFOV、A/P、R/L、过滤器、类型、ASIR、IQEnhanced、GSI、Flip、1 1161、Helical、S150.0 D、I1300.0 D、1.25、1.25、50.0 D、A0.0 D、R0.0 D、软、满、无、是、不、无

系列8组1 Recon 7设置组,图像、类型、开始、结束、粗、Int、DFOV、A/P、R/L、过滤器、类型、ASIR、IQEnhanced、GSI、Flip、1 1161、Helical、S150.0 D、I1300.0 D、1.25、1.25、50.0 D、A0.0 D、R0.0 D、软、满、无、是、不、无

成人头1.2头部对比(成人) 1.25 N+C

考试剂量设置,ExamCtdi,ExamDLP,110.533,2351.6

系列1,童子军,HeadFirst,仰卧AutoStore,门控,SeriesLevelCopy,注射器,不,不

扫描,kV,mA,开始,结束,平面,消息,光,定时器,1,120,20,S180,I180,0,0,不,不

系列2,轴向,HeadFirst,仰卧AutoStore,门控,SeriesLevelCopy,SmartPrep,活检,注射器,不

系列2 1扫描设置组,图像、速度、类型、开始、结束、粗、速、行、Int、HiRes、梭、Tilt、SFOV、kV、mA、消息、光、定时器、CTDI、CTDI、DLP NV、DLP、1 161、1.0、Helical、S150.0、I50、1.25、5.625、16、1.25、No、No、S0.0、大型、120、340、No、NA、55.2667、NA、1175.8

系列2第1组雷管1设置组,DFOV,A/P,R/L,过滤器,类型,Vari,D3D,DMPR,Neuro,ASIR,IQEnhance,GSI,Flip,1,50.0,A0.0,R0.0,标准,完全,无,无,不,无

系列3第1组Recon 2设置组,图像,类型,开始,结束,厚,Int,DFOV,A/P,R/L,过滤器,类型,ASIR,IQEnhanced,GSI,Flip,1,161,Helical,S150.0 D,I50.0 D ,1.25,1.25 D ,50.0 D,A0.0 D,R0.0 D,完全,无,No,No,无

系列7第1组Recon 6设置组,图像、类型、开始、结束、粗大、Int、DFOV、A/P、R/L、过滤器、类型、ASIR、IQEnhanced、GSI、Flip、1 161、Helical、S150.0 D、I50.0 D、1.25、1.25 D、50.0 D、A0.0 D、R0.0 D、软、满、无、是、否、无

系列8组1 Recon 7设置组,图像、类型、开始、结束、粗、Int、DFOV、A/P、R/L、过滤器、类型、ASIR、IQEnhanced、GSI、Flip、1 161、Helical、S150.0 D、I50.0 D、1.25、1.25 D、50.0 D、A0.0 D、R0.0 D、软、满、无、是、否、无

系列9,轴向,HeadFirst,仰卧AutoStore,门控,SeriesLevelCopy,SmartPrep,活检,注射器,不

系列9扫描设置组,图像、速度、类型、开始、结束、粗、速、行、Int、HiRes、梭、Tilt、SFOV、kV、mA、消息、光、定时器、CTDI、CTDI、DLP NV、DLP、1 161、1.0、Helical、S150.0、I50、1.25、5.625、16、1.25、No、No、S0.0、大、120、340、No、NA、55.2667、NA、1175.8

系列9第1组雷管1设置组、DFOV、A/P、R/L、过滤器、类型、Vari、D3D、DMPR、Neuro、ASIR、IQEnhance、GSI、Flip、1,50.0 D、A0.0 D、R0.0 D、软、满、不、零、是、不、零,

是否有一种方便的方法从具有这种结构的文件中读取数据?我的意思是,我不想通过字符串读取文件字符串,使用re模块编写一些逻辑表达式,等等。也许你有一些有用的建议来阅读,如果没有任何usfeul。

EN

回答 1

Stack Overflow用户

发布于 2022-04-21 14:19:34

不是一个确切的表,但这将把您的csv转换成一个dict,然后您就可以将其用于您的目的。( json导入只是为了打印格式,可以排除。)

代码语言:javascript
运行
复制
import json

def read_scan():
    file = open('scan.csv', 'r')
    data = {}
    key = ""
    for line in file:
        line = line.replace("\n", "")
        if "," not in line and len(line):
            key = line
            if key not in data:
                data[key] = []
        elif len(line):
            line_array = line.split(",")
            line_data = {}
            half = int(len(line_array) / 2)
            for index in range(0, half):
                line_data[line_array[index].strip()] = line_array[half + index]
                data[key].append(line_data)

    print(json.dumps(data, indent=4))

read_scan()

输出:

代码语言:javascript
运行
复制
{
    "ADULT HEAD 1.1 Head (adult) 1.25": [
        {
            "Exam Dose Settings": " 56.1357",
            "ExamCtdi": "8211.25",
            "ExamDLP": ""
        },
        {
            "Exam Dose Settings": " 56.1357",
            "ExamCtdi": "8211.25",
            "ExamDLP": ""
        },
        {
            "Exam Dose Settings": " 56.1357",
            "ExamCtdi": "8211.25",
            "ExamDLP": ""
        },
        {
            "Series 1": "SeriesLevelCopy",
            "Scout": "Injector",
            "HeadFirst": " No",
            "Supine AutoStore": "No",
            "Gating": "No"
        },
        {
            "Series 1": "SeriesLevelCopy",
            "Scout": "Injector",
            "HeadFirst": " No",
            "Supine AutoStore": "No",
            "Gating": "No"
        },
        {
            "Series 1": "SeriesLevelCopy",
            "Scout": "Injector",
            "HeadFirst": " No",
            "Supine AutoStore": "No",
            "Gating": "No"
        },
        {
            "Series 1": "SeriesLevelCopy",
            "Scout": "Injector",
            "HeadFirst": " No",
            "Supine AutoStore": "No",
            "Gating": "No"
        },
        {
            "Series 1": "SeriesLevelCopy",
            "Scout": "Injector",
            "HeadFirst": " No",
            "Supine AutoStore": "No",
            "Gating": "No"
        },
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71955594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档