Python文件解析器

时间:2016-02-25 16:25:09

标签: python file parsing

这是我要解析的文本文件的模型:

:

我希望在different之后获取相关信息,例如:22:23:32:

我知道如何操作的唯一方法是解析每一行并在for line in file: if re.match("Something", line): line = line.split(':') print (str(line[1])) elif re.match("Date", line): ??? 之后拆分。问题是,如果是日期,它会崩溃。

这是我到目前为止编写的代码:

userService

这只是一个简单的例子,我需要解析的文件包含我需要提取的更多信息。

哪种解决方案最有效?

2 个答案:

答案 0 :(得分:3)

您需要使用split()指定限制:

line = line.split(':', 1)

这样,this:that:somethingelse被解释为['this', 'that:somethingelse']

答案 1 :(得分:2)

使用split方法的第二个参数,它可以避免一行中:的问题,请参阅下面的代码:

for line in file:
    data = line.split(':', 1)[1]
    print data
  

str.split([SEP [,maxsplit]])

     

使用sep作为分隔符,返回字符串中单词的列表   串。如果给出maxsplit,则最多完成maxsplit分割(因此,   该列表最多只有maxsplit + 1个元素。)

来源:python documentation