сравнение строк в файле со строкой

#python #linux #ssh

#python #python-2.x

Вопрос:

Я пытаюсь посмотреть, есть ли в моем списке уже определенный пользователь. Я должен распечатать «найдено соответствие», но я этого не делаю. Я думал, что проблема была в моем 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. попробуйте line.strip() == var

2. Большое спасибо, это сработало!

Ответ №1:

Если вы создадите следующий файл 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() , не повлияет ни на какие другие символы пробела ни в начале, ни в конце.