python解析并打印文本之前。(点)

时间:2014-07-11 13:50:03

标签: python

我正在尝试一个程序,它必须解析文本文件:qwer.txt并打印'='之前和','之后的值:

qwer.txt

john.xavier=s/o john
jane.victory=s/o ram

输出:

 xavier
 victory

我的程序显示整行,请帮助说明如何显示特定文本。和=

with open("qwer.txt", 'r') as my_file:
     a = my_file.readlines()
     for line in a:
        for part in line.split():
             if "=" in part:
                print part.split(' ')[-1]

请帮忙!答案将不胜感激。

3 个答案:

答案 0 :(得分:3)

with open("qwer.txt", 'r') as my_file:
    for line in my_file:
        print line.split('=')[0].split('.')[1]

答案 1 :(得分:0)

您可能需要更好地理解with声明: - )

这是我的解决方案:

with open("qwer.txt", 'r') as my_file:
for line in my_file:
    name = line.split("=", 1)[0]
    print name.split(".")[-1]

这两行也可以像这样组合:

print line.split("=", 1)[0].split(".")[-1]

“with”声明的官方文件是here

答案 2 :(得分:0)

有趣的方法使用正则表达式而不是分裂,并且会忽略坏行而不是错误(如果我自己这么说的话,那就太漂亮了)。如果你想进一步使用它们而不是输出,也会给你一个很好的名字列表。

import re

r = re.compile('.+?\.(.+)?\=.+')

with open("qwer.txt", 'r') as f:
    names = [r.match(x).group(1) for x in f.read().splitlines() if r.match(x)]

for name in names: print name