2016-02-25 36 views
0

這是我想分析的文本文件的模型:Python的文件分析器

Something: different 

Date: 22:23:32 

我想:後獲得的信息,例如:different22:23:32

我知道該怎麼做的唯一方法就是解析每行並在:之後分裂。問題是,在日期的情況下,它會崩潰。

這是我寫到目前爲止代碼:

for line in file: 
    if re.match("Something", line): 
     line = line.split(':') 
     print (str(line[1])) 
    elif re.match("Date", line): 
     ??? 

這只是一個簡單的例子,我需要解析包含我需要提取更多的信息的文件。

哪個會是解決問題最有效的方法?

回答

3

你需要用split()指定限制:

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

這樣,this:that:somethingelse被解釋爲['this', 'that:somethingelse']

2

使用分割方法的第二個參數,它允許避免在一行具有很少:問題,請參閱下面的代碼:

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

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

返回字符串中單詞的列表,使用sep作爲分隔符 字符串。如果給出maxsplit,最多可以完成maxsplit分割(因此, 列表最多隻能有maxsplit + 1個元素)。

來源:python documentation

+0

在同一秒礦山相同的答案。 – zondo

+0

@zondo我們在同一個方向思考)) –

+0

我想知道爲什麼我是upvoted,而你不是? – zondo