python解析并打印之前的文本。(点)
我正在尝试一个程序,它必须解析文本文件:qwer.txt并打印“=”之前和“,”之后的值: qwer.txtpython解析并打印之前的文本。(点),python,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: f
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]
请帮忙!答案将不胜感激。您可能需要更好地理解该陈述:-)
with open("qwer.txt", 'r') as my_file:
for line in my_file:
print line.split('=')[0].split('.')[1]
以下是我的解决方案:
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”语句的官方doc使用regex而不是拆分是一种很有趣的方式,并且会忽略错误行而不是出错(如果我自己这么说的话,这是非常巧妙的)。如果您想进一步使用而不是输出名称,还可以提供一个很好的名称列表
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
如果您实际在
中为第行中的部分拆分字符串,则会有所帮助。split()
(示例中的第四行)我希望您可能在某个地方有一个.split(“.”
)。我得到了输出,但错误为:print line.split('=')[0]。split('.')[1]IndexError:list index超出范围>>@adarshram这可能是因为提到的名称中可能没有“.”。好的,您可以添加if(“=”在第行)和(“.”):以检查字符串是否适用于预期条件。