我正在尝试一个程序,它必须解析文本文件: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]
请帮忙!答案将不胜感激。
答案 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