将文件中的行与字符串进行比较

2 投票
1 回答
13102 浏览
提问于 2025-04-18 10:12

我正在尝试检查我的列表中是否已经有一个特定的用户。我应该能看到“找到匹配项”的提示,但我没有看到。我原以为问题出在我的php文件上,所以我创建了一个内容相同的文本文件,但它仍然找不到匹配项。

import urllib2
server = "10.20.68.235"
var = "patrik"
file = urllib2.urlopen("http://"+server+"/list-text.php")

for line in file:
        if line == var:
                print "match found"
        print line,

print "done"

这是我得到的输出:

someguy
user
patrik
juniper
ftpsecure
momeunier
done  

1 个回答

7

如果你创建一个名为 xx.in 的文件:

test line 1
test line 2

然后运行下面的Python程序,你会清楚地看到为什么匹配会失败:

file = open('xx.in')
for line in file:
    print '[%s]' % (line)

输出结果是:

[test line 1
]
[test line 2
]

这显示在读取时,换行符仍然留在行上。如果你想去掉这些换行符,可以使用:

line = line.rstrip('\n')

这个方法会从字符串的 末尾 删除所有的换行符,而且和 strip() 不同,它不会影响字符串开头或结尾的其他空白字符。

撰写回答