首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将DCS脚本解析为python中的列表/字典

将DCS脚本解析为python中的列表/字典
EN

Stack Overflow用户
提问于 2018-02-02 04:18:20
回答 1查看 69关注 0票数 1

我是python的新手,我正在尝试使用它(Python 2.7.14)从文本文件中提取信息。

当我将文本文件的一部分作为字符串复制并运行搜索时,如下所示:

代码语言:javascript
复制
import re

data = """ATTRIBUTE_INSTANCE NAME="R_MIX_HIHI_LIM"
    {
      VALUE { CV=0 }
    }
    ATTRIBUTE_INSTANCE NAME="R_MIX_LOLO_LIM"
    {
      VALUE { CV=0 }
    }
    ATTRIBUTE_INSTANCE NAME="R_MIX_SP"
    {
      VALUE { CV=0 }
    }
    ATTRIBUTE_INSTANCE NAME="R_VAC_HIHI_LIM"
    {
      VALUE { CV=0 }
    }
    ATTRIBUTE_INSTANCE NAME="R_VAC_LOLO_LIM"
    {
      VALUE { CV=0 }
    }
    ATTRIBUTE_INSTANCE NAME="R_VAC_SP"
    {
      VALUE { CV=0 }
    }
    ATTRIBUTE_INSTANCE NAME="L_RECIRC_TM"
    {
      VALUE { CV="" }
    }
    ATTRIBUTE_INSTANCE NAME="L_RECIRC_TM_SP"
    {
      VALUE { CV="" }
    }"""

regex = re.compile(r"ATTRIBUTE_INSTANCE NAME\=\"([A-Za-z][_A-Za-z]+)")
result = regex.search(data)

for result in regex.findall(data):
    print result

我得到了我想要的输出。当我尝试使用以下内容直接搜索文本文件时,出现了问题:

代码语言:javascript
复制
import re

f_open = open("file.txt", "r")
data = f_open.read()

regex = re.compile(r"ATTRIBUTE_INSTANCE NAME\=\"([A-Za-z][_A-Za-z]+)")
result = regex.search(data)

for result in regex.findall(data):
    print result

f_open.close()

我的搜索命令不再输出任何内容。这是由于"open“命令在所有字符之间添加了空格。因此,不是:

代码语言:javascript
复制
ATTRIBUTE_INSTANCE NAME="R_PRS_CTRL_LM"
{
  VALUE { CV=0 }
}

我得到了:

代码语言:javascript
复制
     A T T R I B U T E _ I N S T A N C E   N A M E = " R _ P R S _ C T R L _ L M "
     {
         V A L U E   {   C V = 0   }
     }

有没有什么方法可以确保我的代码在不添加空格的情况下读取文本文件,从而破坏我的搜索功能?

EN

回答 1

Stack Overflow用户

发布于 2018-02-08 22:36:43

我想通了。DCS输出文件为二进制文件。转换文件可解决此问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48571059

复制
相关文章

相似问题

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