从CARI/201412文件中获取输出(在CARI/201I中也有输出)
---------------------------------------------
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 05120970.01 -> car_number = 05120970.01
Owner_Info.User_ref = crossi14 -> owner_user = crossi14
CarModel = Nissan Micra -> car_model = Nissan Micra
根据这些信息,我将添加一些默认内容,如:
priority = Unknown
我需要将这些变量作为另一个名为insert\u owner的脚本的输入_汽车.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:我有Python2.5.1
可以使用utility function ^{} 分块处理文件:
印刷品
^{pr2}$如果数据文件很小,则可以将整个文件分成一个字符串,然后使用
re.split
将其拆分为多个块:这可以代替上面的
open_chunk
。使用open_chunk
的优点是可以在非常大的文件上使用,因为将整个文件分成一个字符串并将其拆分为一个列表需要太多内存。在您应该使用
re
模块来提取相关信息:它是标准的、简单的和健壮的。 您还可以显示块限制的块信息,并在文件末尾添加一个catch all。在脚本将是:
在您当前的示例中,输出是
^{pr2}$以及结果.txt是:
相关问题 更多 >
编程相关推荐