python 解析并打印点前文本

2 投票
3 回答
1142 浏览
提问于 2025-04-18 12:57

我正在尝试写一个程序,它需要读取一个文本文件: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

这是一个有趣的小方法,使用正则表达式来处理数据,而不是用分割的方法。这样做的好处是,它会忽略那些不好的行,而不是出错(我觉得这真不错)。另外,如果你想进一步使用这些名字,它还会给你一个很好的名字列表,而不是直接输出结果。

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
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" 语句的官方文档可以在 这里 找到

4

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水龙头接到另一个水龙头一样。

有些时候,我们会遇到一些问题,比如数据没有按照我们想要的方式流动,或者在传输过程中出现了错误。这就像是水管堵了,水流不畅。

为了避免这些问题,我们可以使用一些工具和方法来确保数据能够顺利传输。就像在水管里加装过滤器,确保水是干净的,流动是顺畅的。

总之,处理数据就像管理水流一样,我们需要确保每一步都顺利进行,这样才能得到我们想要的结果。

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

撰写回答