<p>您应该使用<code>re</code>模块来提取相关信息:它是标准的、简单的和健壮的。
您还可以显示块限制的块信息,并在文件末尾添加一个catch all。在</p>
<p>脚本将是:</p>
<pre><code>import re
rnum = re.compile('\s*TM\s+([^\s:]+):.*')
ruser = re.compile('.*Owner_Info.User_ref\s*=\s*(.*)')
rmodel = re.compile('.*CarModel\s*=\s*(.*)')
def display(out, num, user, model):
print(num, user, model)
out.write('insert_owner_car.pl -id %s -o owner_user="%s",car_model="%s",priority="Unknown"\n' % (num, user, model))
inFile = open("/tmp/20141202.194812_carStatus")
outFile = open("result.txt", "w")
firstOfBlock = False
carnum = None
for line in inFile:
if line.startswith(" "):
firstOfBlock = True
if carnum is not None:
display(outFile, carnum, user, model)
carnum = None
else:
if firstOfBlock:
m = rnum.match(line)
if m is not None:
carnum = m.group(1)
firstOfBlock = False
else:
line = line.strip()
m = ruser.match(line)
if m is not None:
user = m.group(1)
else:
m = rmodel.match(line)
if m is not None:
model = m.group(1)
if carnum is not None:
display(outFile, carnum, user, model)
carnum = None
inFile.close()
outFile.close()
</code></pre>
<p>在您当前的示例中,输出是</p>
^{pr2}$
<p>以及结果.txt是:</p>
<pre class="lang-none prettyprint-override"><code>insert_owner_car.pl -id 05120970.01 -o owner_user="crossi14",car_model="Nissan Micra",priority="Unknown"
insert_owner_car.pl -id 05157414.06 -o owner_user="yumiao12",car_model="Toyota Avensis",priority="Unknown"
</code></pre>