• Как сравнить две базы данных?

    ae_ph
    @ae_ph
    I'm a owl )
    Можно выполнять запросы между базами данных для объединения таблиц из разных баз данных, таких как HIVE и Oracle.
    Один из способов сделать это — использовать инструмент под названием Apache Drill, который позволяет запрашивать данные из нескольких источников данных, включая HIVE и Oracle.
    Вы можете использовать оператор SQL JOIN в тренировке, чтобы соединить таблицы из разных баз данных.

    Другой способ — использовать язык программирования, такой как Python, и библиотеки, такие как PyHive или cx_Oracle, для подключения к обеим базам данных и выполнения объединения и сравнения в коде.
    Этот подход может занять больше времени для больших таблиц с миллионами строк.

    Вы также можете использовать сторонние инструменты интеграции данных, такие как Talend, Informatica и DataStage, для объединения и сравнения двух баз данных.
    Лучше всего проверить производительность каждого подхода и выбрать тот, который лучше всего подходит для вашего случая использования.
    Ответ написан
    Комментировать
  • Как поменять домен на локальном сервере?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Подскажите как можно установить ему купленный домен

    1. Арендовать у своего провайдера белый IP-адрес
    2. Прописать его в A-запись доменной зоны
    3. Прописать доменное имя в настройках своего web-сервера
    4. Настроить проброс портов на своём маршрутизаторе


    Под бесплатным имею ввиду просто взять свободный и не регать его в каких-то сервисах.

    Незарегистрированное доменное имя не обслуживается dns-серверами. Поэтому каждый клиент должен будет прописать соответствие между этим доменным именем и вашим IP-адресом себе в файл hosts. Иначе работать ничего не будет.
    Ответ написан
    Комментировать
  • Как сделать ограниченные права на операции по SSH с помощью iptables?

    @pfg21
    ex-турист
    принцип работы ssh - туннель.
    ssh-клиент c stdin забирает данные и перенаправляются на сервер.
    на ssh-сервере принимаемые данные скармливаются подключенной программке на stdin, а выхлоп c stdout забирается и отправляется клиенту.
    ssh-клиент передает полученные по тунелю символы на stdout.
    ssh может запустить любую програмку, если отсуствует, запускает шелл.

    ssh до сиреневой лампочки какие данные пересылаются. если хочешь фильтровать данные то делай это отдельн от ssh.
    к примеру напиши свой api который будет принимать только правильные команды
    Ответ написан
    1 комментарий
  • Как можно управлять службами и брандмауэром в Windows 7 на Python?

    @MaxKozlov Куратор тега PowerShell
    https://codereview.stackexchange.com/questions/211...

    а New-NetFirewallRule на win7 не было ещё
    сервисы же настраивать через sc
    Ответ написан
    6 комментариев
  • Как можно управлять службами и брандмауэром в Windows 7 на Python?

    Не совсем питон, но в Ansible есть модули для управления службами и брандмауэром
    Ответ написан
    Комментировать
  • Как управлят службами и Брандмаурэром Windows на Python?

    Zoominger
    @Zoominger Куратор тега Python
    System Integrator
    Ну так используйте system() с вызовом cmd-команд.
    Гуглите по "schtask" и вызову PS-кода из Python.
    Ответ написан
    1 комментарий
  • Ошибка в tkinker, при нажатии на кнопку, как исправить?

    shabelski89
    @shabelski89
    engineer
    внутри функции save вы её вызываете ещё раз -зачем? и откуда берется link1 тоже не ясно
    def save(link):
        filename = link.split('/')[-1]
        print (filename)
        r = requests.get(link)
        open(filename, 'wb').write(r.content)
        #save(link1) # убираем это
        save_1 = tk.Label(win, text='Desktop cкачан в текущую папку', bg='#CCC', font=('Arial',10))
        save_1.pack()
        save_1.place(x=15, y=200)

    что там про чек-бокс не понятно, нужен полный код программы
    Ответ написан
    6 комментариев
  • Как запаковать программу в EXE, если там webdriver?

    @antares4045
    обратите внимание на флаг --add-data у pytinstaller: скорее всего он решит вашу проблему.
    а ошибку можно прочитать, запустив экзешник через консоль:
    в винде правой клавишей с зажатым шифтом по любому свободному месту в папке - открыть окно powershell здесь - и вбиваете команду
    ./<имя экзешника>.exe
    Ответ написан
    1 комментарий
  • Как выполнять последовательную проверку данных в Google Seets?

    Vindicar
    @Vindicar
    RTFM!
    У меня получилось 4000 строк на 76 ключей

    Я надеюсь, вы знакомы с понятием цикла? o_O
    range='A3:A3',

    Просто генерируете значение range.
    for row in range(3, 130):
        values_guid = service.spreadsheets().values().get(
            spreadsheetId=spreadsheet_id,
            range=f'A{row}:A{row}',
            majorDimension='COLUMNS'
        ).execute()
        #ну и так далее

    Вместо цикла for по фиксированному диапазону можно сделать цикл while, и прерывать его когда наткнётесь на пустую ячейку. Тогда не придётся прописывать количество ячеек.
    Ответ написан
    3 комментария
  • Как получать "чистое" значение ячейки в Google Sheets?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Рекомендую ознакомиться с типами в python, а именно - словари, списки. А также с методами обращения к элементам словаря по ключу и к элементам списка по порядковому номеру.

    В конкретном случае это может выглядеть так:
    def get_value(data, key, id):
        return data[key][id]
    
    if __name__ == '__main__':  
        data_1 = {'values': [['8241279c-4945-4066-977f-15db2943be44']]}
        
        data_2 = {'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['102126989']]}
            
        key = 'values'
        id = 0    
        clear_data_1 = get_value(data_1, key, id)
        clear_data_2 = get_value(data_2, key, id)
        print(clear_data_1, clear_data_2)
    Ответ написан
    Комментировать
  • Как получать "чистое" значение ячейки в Google Sheets?

    shabelski89
    @shabelski89
    engineer
    Вам нужно просто извлечь значение из JSON. если посмотреть внимательно то перед вами словарь, и нужный элемент получается по ключу.
    А то что Вы делаете описано подробно тут
    ну и в качестве домашнего задания разберитесь по строчкам кода
    response = {'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['102126989']]}
    response.get('values', 'No key values')
    [['102126989']]
    result = response.get('values', 'No key values')
    type(result)
    <class 'list'>
    result[0]
    ['102126989']
    result[0][0]
    '102126989'
    values = result[0][0]
    values
    '102126989'
    v = response['values'][0][0]
    v
    '102126989'
    import json
    from_google_sheet = '[{"majorDimension": "COLUMNS", "range": "guid!B2", "values": [["1"]]},{"majorDimension": "COLUMNS", "range": "guid!B2", "values": [["2"]]},{"majorDimension": "COLUMNS", "range": "guid!B2", "values": [["3"]]}]'
    json_from_google_sheet = json.loads(from_google_sheet)
    json_from_google_sheet
    [{'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['1']]}, {'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['2']]}, {'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['3']]}]
    type(json_from_google_sheet)
    <class 'list'>
    for values in json_from_google_sheet:
        print(values['values'][0][0])
        
    1
    2
    3
    Ответ написан
    Комментировать
  • Как сделать последовательную проверку?

    Vindicar
    @Vindicar
    RTFM!
    Не пиши простыню кода, а разбей задачу на составляющие.
    Для начала отрефактори(переделай) свой код в функцию такого вида:
    def is_guid_accepted(guid: str) -> bool:
        #тут код

    Т.е. функция, которая принимает GUID и возвращает либо True (подтверждён), либо False (не подтверждён). При ошибке можешь выбрасывать исключение, или тоже возвращать False.

    После этого задача упростится.
    1. Прочитать содержимое .xlsx файла, если так уж хочется эксель (а может, всё же csv? будет проще), вытащить из него список GUID'ов и task_id. Гуглится.
    2. Для каждого GUID в списке вызвать функцию выше.
    3. Если функция вернула True, то добавить task_id в список успешных.
    4. Для каждого task_id в списке успешных отправить оповещение. Тебе виднее, как.
    Ответ написан
    1 комментарий
  • Как программой установить Автоматический режим на службу Windows?

    @MaxKozlov Куратор тега PowerShell
    Если я вас правильно понял, то через powershell можно указать тип запуска для сервиса примерно так
    Get-Service openvpn | Set-Service -StartupType Automatic

    как там точно сервис openvpn называется я не помню, так что подкрутите

    ну и сам powershell скрипт можно запускать типа
    powershell -file filename.ps1
    а в filename.ps1 уже писать все нужные команды
    Ответ написан
    Комментировать
  • Функция записис переменной от пользователя для Телеграм бота на Python?

    Levman5
    @Levman5
    print(“Hello World!”)
    import telebot
    
    bot = telebot.TeleBot('TOKEN')
    
    def number(message):
        bot.send_message(message.chat.id, f'Вот твоя ссылка: http://api.whatsapp.com/send/?phone={message.text}')
    
    @bot.message_handler(commands=['start'])
    def welcom(message):
        bot.send_message(message.chat.id, 'Отправь номер телефона')
        bot.register_next_step_handler(message, number)
    
    bot.polling()


    bot.register_next_step_handler(message, number) переносит в другую функцию
    Ответ написан
    4 комментария
  • Функция записис переменной от пользователя для Телеграм бота на Python?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Можно просто открыть примеры
    https://github.com/eternnoir/pyTelegramBotAPI/blob...

    Либо поискать по сайту, про степ хэндлер есть вопрос и ответ стабильно раз в неделю
    Ответ написан
    Комментировать