Top.Mail.Ru
Ответы

Оператор if при сравнении одной и той же строки переходит к else

Система: win7 x64, Python 3.8


Нужно было проверить находится ли файл по указанному пути(файл там находится 100%):


import subprocess
import os

python = subprocess.check_output('where python', shell=True).decode("utf-8")
print(os.path.exists(python))


Но почему-то вместо True я получаю False. Далее я попробовал указать сразу путь(тот же):


import subprocess
import os

python = subprocess.check_output('where python', shell=True).decode("utf-8")
print(os.path.exists("C:\Program Files\Python38\python.exe"))


На что в этот раз я получил True. Я попробовал просто сравнить с помощью if:


import subprocess
import os

python = subprocess.check_output('where python', shell=True).decode("utf-8")

if (python == r"C:\Program Files\Python38\python.exe"):
print("True")
else:
print("False")


И тут также False. Т.е. строка не ровняется указанному значению? Я также выводил строки с помощью print() и проверял их тип с помощью type(), строки полностью одинаковые. Что я делаю не так и как то исправить?

По дате
По рейтингу
Аватар пользователя
Мудрец

Проверка файла осуществляется через функцию exists
Вoзвращает false, если файла нет. Иначе true

file = os.path.exists('test.txt')