我是python的新手,我正在尝试使用它(Python 2.7.14)从文本文件中提取信息。
当我将文本文件的一部分作为字符串复制并运行搜索时,如下所示:
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我得到了我想要的输出。当我尝试使用以下内容直接搜索文本文件时,出现了问题:
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“命令在所有字符之间添加了空格。因此,不是:
ATTRIBUTE_INSTANCE NAME="R_PRS_CTRL_LM"
{
VALUE { CV=0 }
}我得到了:
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 }
}有没有什么方法可以确保我的代码在不添加空格的情况下读取文本文件,从而破坏我的搜索功能?
发布于 2018-02-08 22:36:43
我想通了。DCS输出文件为二进制文件。转换文件可解决此问题。
https://stackoverflow.com/questions/48571059
复制相似问题