【发布时间】:2014-12-08 10:41:37
【问题描述】:
我有一个脚本,我可以从中获取输出(我也将此输出保存到 f1 = 20141202.194812_carStatus/ 中的文件):
---------------------------------------------
TM 05120970.01: Processing...
TM 05120970: Processing...
TM 05120970: current status Open
TM 05120970: Owner_Info.User_ref = crossi14
TM 05120970: Owner_Info.Email = Criss.Rossi@gmail.com
TM 05120970: CarModel = Nissan Micra
----------------------------------------------
TM 05157414.06: Processing...
TM 05157414: Processing...
TM 05157414: current status Open
TM 05157414: Owner_Info.User_ref = yumiao12
TM 05157414: Owner_Info.Email = Yu.Miao@gmail.com
TM 05157414: CarModel = Toyota Avensis
----------------------------------------------
我用过:exec_cmd('cat ' + f1 + '| grep -e "CarModel = " -e "Owner_Info.User_ref = "')
但我还需要块的第一行(实际上是第二行)
TM 05157414.06: Processing...
我尝试/需要做的是,解析并获取每个块的变量中的值:
TM 05120970.01 -> car_number = 05120970.01
Owner_Info.User_ref = crossi14 -> owner_user = crossi14
CarModel = Nissan Micra -> car_model = Nissan Micra
使用这些信息,我将添加一些默认内容,例如:
priority = Unknown
我需要将此变量作为另一个名为 insert_owner_car.pl 的脚本的输入
insert_owner_car.pl -id 05120970.01 -o owner_user="crossi14",car_model="Nissan Micra",priority="Unknown"
这是我到目前为止所做的,但它不可用,因为我无法获得提到的值
#!/usr/bin/python
import itertools, commands, datetime, os, re, sys, time
inFile = open("/tmp/20141202.194812_carStatus")
outFile = open("result.txt", "w")
keepCurrentSet = False
for line in inFile:
if line.startswith("----------------------------------------------"):
keepCurrentSet = False
if keepCurrentSet:
parts = line.split(" = ")[1:]
part=','.join(parts)
print part
#outFile.write(parts)
if line.startswith("----------------------------------------------"):
keepCurrentSet = True
inFile.close()
outFile.close()
我不知道如何获得:05120970.01 以及如何让一个块中的所有变量能够将它们用作其他脚本的输入
PS:我有 python 2.5.1
【问题讨论】: