Неверное значение в логах c в выводе в строке сравнения. MacOS, Python - PullRequest
0 голосов
/ 29 марта 2020

Я написал код, который сравнивает версию браузера на устройстве и последнюю существующую версию браузера.

Здесь:

import requests
import subprocess


def get_last_version(browser_name):
    res = requests.get("https://vergrabber.kingu.pl/vergrabber.json")
    last_version = repr(res.json()['latest']['client'][browser_name]['version'])
    return last_version[2:-1]


def get_current_version(app_path):
    res = subprocess.Popen(
        'defaults read /Applications/' + app_path + '/Contents/Info.plist CFBundleShortVersionString',
        shell=True, stdout=subprocess.PIPE).stdout
    current_version = res.read()
    return current_version


def compare_versions(browser_name, app_path):
    if get_last_version(browser_name) == get_current_version(app_path):
        return True
    else:
        return False


def main():
    get_last_version('Google Chrome')
    print get_last_version('Google Chrome')

    get_current_version('Google\ Chrome.app')
    print get_current_version('Google\ Chrome.app')

    print compare_versions('Google Chrome', 'Google\ Chrome.app')


main()

Здесь вывод:

80.0.3987.149
80.0.3987.149

False

Я проверил лен и обнаружил, что это не то же самое:

80.0.3987.149
13
80.0.3987.149

14
False

Перед редактированием у меня было следующее значение:

u'80.0.3987.149'
16
80.0.3987.149

14
False

Я не понимаю, почему я получаю false ??? Можете ли вы сказать мне, в чем проблема?

1 Ответ

0 голосов
/ 29 марта 2020

что если вы измените compare_versions на:

def compare_versions(browser_name, app_path):
    if str(get_last_version(browser_name)) == str(get_current_version(app_path)):
        return True
    else:
        return False

Если это решит вашу проблему, типы версий не совпадают. Если это не работает, попробуйте напечатать len версий, возможно, есть скрытое пространство или что-то в этом роде ...

Кроме того, попробуйте list(version1) и list(version2) - это разделит вашу строку на список символов, и вы сможете найти разницу проще ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...