【发布时间】:2013-10-28 22:24:58
【问题描述】:
我有这样的数据文件:
group Head:
data1: abc data2: def
2word data3: ghi data4: jkl
data3: mno three word data4: pqr stu
所以在 python 中我构建了一个这样的正则表达式:
Data = re.findall(r'(([\w\(\)]+[ \t\f]?)+):([ \t\f]*(\S+))', data)
我的文件接近 600 行,通常有 2 列,如上所示,每个文件解析它们需要几分钟时间。
使这段代码更高效的最佳方法是什么,以便每个文件在不到 10 秒的时间内运行?
【问题讨论】:
-
你想从这些文件中提取什么?
-
你能提供描述这种格式的语法吗?
-
@Floris 是键和值,但上面列出的格式的整个文件只是重要部分。例如,我想要键 'data1' 和值 'abc'
-
键是“在该行的第一个冒号之前没有空格的字符串”吗?值是“之后的第一个词”吗?换句话说 - 你想要第 2 行、第 3 行的输出是什么?它必须是 Python 正则表达式吗?
-
@Lucho 这些文件只是纯文本文件,从网络设备输出。这是从轮询器中提取的数据
标签: python regex performance