• Не выполняется функция, после обращения к ей, как решить?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Думаю что проблема в том что метод init_UI нигде не вызывается
    Добавь вызов этого метода в __init__
    Ответ написан
  • Как получить все url get запросов с сайта?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Url всегда нормальный
    spoiler

    https://api.photo.2gis.com/2.0/photo/get?key=gYu1s9N1wP&object_id=70000001041515922&object_type=branch&locale=ru_RU&status=active&sort_by=position&album_code=common&preview_size=600x600,300x300,100x100&size=4&page=1


    Меняй 70000001041515922 на другие номера и получишь то что тебе надо
    Список id есть на страницу и зашит в url организации но получить этот список ты стандартным requests не сможешь потому как станица генерируется js
    Ответ написан
  • Как найти нужное значение соответствующее одному из вариантов регулярного выражения?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Необходимо проверить/найти

    Так найти или проверить ?

    Ну и собственно зачем городить огород если нет понимания как эта фигня однострочная работает
    Разбей принтами по скобкам и увидишь что в одним из мест на вход подается не то что ожидается
    В твоем случае ты не видишь этой ошибки потому что тесты, скорее всего, проводишь со строкой в которой нет совпадений. Если же нет то почему не выложил ошибку вопрос опять же к тебе

    В общем разбей задачу на части а потом уже городи всякие однострочники

    Исходные данные

    import re
    source_name = '34234 334234'
    
    pat_0 = r'\d+'
    pat_1 = r'[А-В]Т\-[А-В]Ш\-[А-В]Д'
    pat_2 = r'[А-В]Т\-[А-В]Ш'
    pat_3 = r'[А-В]\-[А-В]Ш'
    pat_4 = r'\s[А-В]\-'
    pat_5 = r'\/[А-В]\-'
    patterns = [pat_0, pat_1, pat_2, pat_3, pat_4, pat_5]


    # Проверить
    found = False
    for p in patterns:
        if re.search(p, source_name):
            found = True
            break;
    if found:
        print("Yes")
    else:
        print("No")
    
    # Найти
    for f in list(map(lambda p: re.findall(p, source_name),  patterns)):
        for v in [i for i in f if f]:
            print(v)
    Ответ написан
  • Как установить новую библиотеку в pycharm?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    устанавливайте в терминале и будет вам счастье
    ide своя тема и своя специфика и может и не для этого она с учетом последних обновлений
    пайчарм.

    Очередная версия транскрипции pycharm
    Ответ написан
  • Как использовать python requests с прокси через tor?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Как

    Простым способом никак

    Если кратко то прокси это точка выхода и если она сама по себе на заточена на использование тора завернуть трафик в тор не получится. Это возможно только в том случае если проски твои как собственно и машина на которой это все хозяйство крутится но тогда тебе нужно поднимать ноду

    А к чему такой головняк ?
    Если ты хочешь скрыть использование тора то используй tor over vpn
    Самый простой джентельменский набор это установка на виртуалку whonix а на host системе включай vpn. Внутри whonix используй прокски чтобы скрыть использование tor для сайта который будешь парсить.... или что ты там удумал
    Ответ написан
    Комментировать
  • Можете оценить код python?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Точно не помню что там уже передается но думаю что можно заменить вот это
    view_folder(arg_parser.path, arg_parser.format, arg_parser.img, arg_parser.dell, arg_parser.dir, arg_parser.del_all)

    на
    view_folder(**arg_parser)
    Вот это можно сократить со значением на умолчанию - зачем зря в клавиатуру тыкать
    confirm = input('\nDelete this files? press: y/n: ')
    
    if not confirm:
    	del_file(difference)
    	sys.exit('Complete\n')
    elif confirm == 'n':
    	sys.exit('Cancelled\n')
    else:
    	print('Invalid input')

    Зачем здесь бесконечный цикл и собственно зачем тут вложенные функции
    #Если файл в папке raw_file уже существует, создать копию	
    i = 1
    while True:
    	if not pathlib.Path(file.parent / 'raw_files' / f'{p.stem}({i}){file.suffix}').is_file():
    		pathlib.Path(file).replace(file.parent / 'raw_files' / f'{file.stem}({i}){file.suffix}')
    		break
    	else:
    		i += 1

    Неоднозначно все с FileNotFoundError. Например, при существовании директории будет FileExistsError
    try:
    	pathlib.Path(f / 'raw_files').mkdir(exist_ok=True)
    except FileNotFoundError:

    continue тут не нужно
    except FileNotFoundError:
    	print(f'Folder {f} not found')
    	err += 1
    	continue
    Ответ написан
    2 комментария
  • Как в sqlite3 задать ограничение на количество строк?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Делаешь select, если результатов больше чем твое значение то удаляешь все записи
    Так как хранимых процедур в sqlite нет как нет возможности сделать TRUNCATE TABLE то остается вариант такой
    DELETE FROM table_name

    Можно еще сделать удаление по дате например так
    import datetime
    
    days_diff = 2    
    date_limit = (datetime.datetime.now() - datetime.timedelta(days=days_diff)).strftime("%Y-%m-%d")

    DELETE FROM table_name WHERE strftime("%Y-%m-%d", created_at) <= date_limit
    Ответ написан
  • Как правильно синхронизировать бд с pyqt (qt)?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Слыхал про QSqlDatabase, но функционал у класа для меня будет маловато

    хм... и чего тебе там не хватает ?

    Реализация сохранение модифицированной таблицы

    con = QtSql.QSqlDatabase.addDatabase('QSQLITE') 
    con.setDatabaseName('data.sqlite') 
    con.open()
    stm = QtSql.QSqlTableModel() 
    stm.setTable('table_name') 
    stm.select() 
    tv = QtWidgets.QTableView() 
    tv.setModel(stm)

    Ответ написан
  • Как залить на хостинг сайт на laravel?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    git push / git pull
    Ответ написан
    Комментировать
  • Как прочитать определённый элемент в файле json python?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    j = [...]
    print(j[0]["vladosikus"]["id"])
    Ответ написан
  • Как вывести результат двух списков циклом?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    x = [1,2,8]
    y = [4,5]
    
    for i,j in (dict.fromkeys(x) | dict(zip(x, y))).items():
        print(i, j)

    ...
    1 4
    2 5
    8 None
    Ответ написан
    Комментировать
  • Выдаёт ошибку на сайте pythonanywhere?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Читайте правила пользования бесплатного аккаунта
    Исходящие соединения ограниченны определённым набором сайтов
    Ответ написан
    Комментировать
  • Как сделать выборку строк из одного txt файла и записать в другой txt на Python?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Как-то так

    import re
    
    def read_file():
        with open('1.txt','r') as file:
            for line in file:
                f = re.findall(r"^(\w+?)\s", line)
                if f:
                    yield ''.join(f)
    
    
    def main():
        with open('2.txt','w') as file:
            for i in read_file():
                print(i, file=file)               
    
    if __name__ == "__main__":
        main()

    Ответ написан
    1 комментарий
  • Как извлечь текст между символами (или тегами) на Python?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Item\s\{(.+?slot:.+?)\}
    Ответ написан
  • Как из функции вывести данные циклом?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    yield
    Ответ написан
    Комментировать
  • Почему не записываются данные в файл json python?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    ну так тебе же явно в ошибке написано что
    'dict' object has no attribute 'append'
    Ответ написан
  • Почему не работают кнопки в диалоговом окне pyqt5?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Все плохо...

    global Dialog
        Dialog = QtWidgets.QDialog()
        ui = Ui_Dialog()
        ui.setupUi(Dialog)
        Dialog.show()


    Создаем QDialog и пихаем его в Ui которое уже диалоговое окно...
    За global вам отдельное наказание надо придумать

    Простой пример из трех окон
    Структура
    spoiler

    629bb299224fb163064642.png

    start.py
    spoiler

    from PyQt5 import QtWidgets
    from modules.main_module import main_module
    import sys
    
    # ------------------------------------------------------------------------------- #
    #
    # ------------------------------------------------------------------------------- #
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        window = main_module()
        window.show_window()
        sys.exit(app.exec_())


    main_module.py
    spoiler

    629bb184ae40c744582105.png
    from PyQt5 import QtWidgets, QtSql, QtCore, QtGui
    import ui.ui_main as ui_main
    from modules.win1_module import win1_module
    from modules.win2_module import win2_module
    
    
    # ------------------------------------------------------------------------------- #
    #
    # ------------------------------------------------------------------------------- #
    class main_module(QtWidgets.QMainWindow):
        # --------------------------------------------------------------------------- #
        #
        # --------------------------------------------------------------------------- #
        def __init__(self, parent=None):
            """
            """
            QtWidgets.QMainWindow.__init__(self, parent)
            self.ui = ui_main.Ui_MainWindow()
            self.ui.setupUi(self)
    
            self.ui.btn_win1.clicked.connect(
                self.on_show_win1)
    
            self.ui.btn_win2.clicked.connect(
                self.on_show_win2)
    
        # --------------------------------------------------------------------------- #
        #
        # --------------------------------------------------------------------------- #
        def on_show_win1(self):
            """
            """
            self.win1 = win1_module(self)
            self.win1.show()
    
        # --------------------------------------------------------------------------- #
        #
        # --------------------------------------------------------------------------- #
        def on_show_win2(self):
            """
            """
            self.win2 = win2_module(self)
            self.win2.show()
    
        # --------------------------------------------------------------------------- #
        # Показывыет главное окно программы
        # Отображение по середине экрана
        # --------------------------------------------------------------------------- #
        def show_window(self):
            """
            """
            desktop = QtWidgets.QApplication.desktop()
            x = (desktop.width() - self.width()) // 2
            y = (desktop.height() - self.height()) // 2
            self.move(x, y)
            self.show()


    win1_module.py
    spoiler

    629bb19bdfdaf538965047.png
    from PyQt5 import QtWidgets, QtCore, QtSql, QtGui
    import ui.ui_win1 as ui_win1
    
    
    # ------------------------------------------------------------------------------- #
    #
    #
    # ------------------------------------------------------------------------------- #
    class win1_module(QtWidgets.QDialog):
        # --------------------------------------------------------------------------- #
        #
        # --------------------------------------------------------------------------- #
        def __init__(self, parent=None):
            """
            """
            super().__init__(parent=parent)
            self.setWindowModality(QtCore.Qt.WindowModal)
            self.setWindowFlags(self.windowFlags() |
                                QtCore.Qt.WindowMaximizeButtonHint)
    
            self.ui = ui_win1.Ui_Dialog()
            self.ui.setupUi(self)
    
            self.main = parent
    
            self.setWindowTitle("Окно №1")
    
    
            self.ui.btn_close.clicked.connect(
                self.on_close)
    
        # --------------------------------------------------------------------------- #
        #
        # --------------------------------------------------------------------------- #
        def on_close(self):
            """
            """
            self.close()


    win2_module.py
    spoiler

    629bb1dc7fc29353137696.png
    from PyQt5 import QtWidgets, QtCore, QtSql, QtGui
    import ui.ui_win2 as ui_win2
    
    
    # ------------------------------------------------------------------------------- #
    #
    #
    # ------------------------------------------------------------------------------- #
    class win2_module(QtWidgets.QDialog):
        # --------------------------------------------------------------------------- #
        #
        # --------------------------------------------------------------------------- #
        def __init__(self, parent=None):
            """
            """
            super().__init__(parent=parent)
            self.setWindowModality(QtCore.Qt.WindowModal)
            self.setWindowFlags(self.windowFlags() |
                                QtCore.Qt.WindowMaximizeButtonHint)
    
            self.ui = ui_win2.Ui_Dialog()
            self.ui.setupUi(self)
    
            self.main = parent
    
            self.setWindowTitle("Окно №2")
    
            self.ui.btn_close.clicked.connect(
                self.on_close)
    
        # --------------------------------------------------------------------------- #
        #
        # --------------------------------------------------------------------------- #
        def on_close(self):
            """
            """
            self.close()



    По аналогии реализации нажатия на кнопку "Закрыть" реализуете и свои варианты событий
    В целом конечно же надо вам заканчивать бездумно копировать код из инета и почитать чего-нибудь
    Ответ написан
    Комментировать
  • Как называется реализованный мною прием в классе Scene?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Композиции тут, ИМХО, нет потому как нет жесткой привязки между классом Scene и Pirat/Carrot/Customer - тут скорее агрегация

    Делегирование тоже под вопросом потому как само понятие предполагает возложить ответственность за что-то на кого-то. Пример
    spoiler

    class Actor:
        def line(self):
            print('Not Implemented')
    
    
    class Pirat(Actor):
        @staticmethod
        def line():
            print('I\'m Pirat')
    
    
    class Carrot(Actor):
        @staticmethod
        def line():
            print('I\'m Carrot')
    
    
    class Customer:
        @staticmethod
        def line():
            print('I\'m customer')
            
    class Starter:
        def play(self, who):
            return who.line()
        
    class Scene:
        def __init__(self):
            self.starter = Starter()
    
        def the_play(self, who):
            self.starter.play(who)
                
    if __name__ == '__main__':
        Scene().the_play(Carrot())
        Scene().the_play(Customer())

    Ответ написан
  • Как посчитать количество двойных 'X'?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    data = 'ZZYYXYYXZXZXZYXYYXZYZYYZYZZXYYZZXYXYZYZXYZXYZYZXZYZZZZYYZYXYXXXZYXZXYYXXYYYXXZZYYYZXZZZYXXXX'
    f = re.findall(r"((?<!X)X{2}(?!X))", data)
    print(len(f))


    # 2
    Ответ написан