<p>在这种情况下,pyparsing可能有点过头了。为什么不直接逐行读取文件,然后解析结果呢?在</p>
<p>代码如下所示:</p>
<p>编辑:我已经更新了代码,以便更接近您的示例。在</p>
<p>从集合导入defaultdict</p>
<pre><code>status = """
sale number : 11/7
NAME ID PAWN PRICE TIME %C STATE START/STOP
cross-cu-1 1055 1 106284K 07:49:36.19 25.05% run 1d01h
cross-cu-2 918 1 104708K 07:38:19.08 24.02% run 1d01h
sale number : 11/8
NAME ID PAWN PRICE TIME %C STATE START/STOP
cross-cu-3 1055 1 106284K 07:49:36.19 25.05% run 1d01h
cross-cu-4 918 1 104708K 07:38:19.08 24.02% run 1d01h
"""
sale_number = ''
sales = defaultdict(list)
for line in status.split('\n'):
line = line.strip()
if line.startswith("NAME"):
continue
elif line.startswith("sale number"):
sale_number = line.split(':')[1].strip()
elif not line or line.isspace() :
continue
else:
# you can also use a regular expression here
sales[sale_number].append(line.split())
for sale in sales:
print sale, sales[sale]
</code></pre>