@lemonlimelike

Как вызвать скрипт в cmd?

Здравствуйте! Использую pysimplegui для создание интерфейса. Написал парсер. Теперь хочу подключить парсер к моему интерфейсу. По началу я хотел чтобы каждая спарсенная страница отображалась в поле вывода(в интерфейсе) Все написал, запустил, а оказывается, что пока парсер не закончит свою работу, то весь интерфейс просто перестает работать и ничего в поле вывода не появляется. Значит все синхроно. Почитал я прос асинхроность в pySimpleGui и решил переписать немного скрипт. Запустил. Начал работать, но почему-то в поле вывода показалась лишь одна запись и весь интерфейс опять перестал работать. Посмотрел сколько жрет оперативы и как нагружает процессор это приложение и оказалось, что достаточно хорошо потребляет из-за этой асинхроности.

Я решил сделать так. По нажатию на кнопку Start в интерфейсе запускать сам парсер, чтоб открылась командная строка и парсер начал работать. Как это сделать? Как сделать вызов скрипта? Чтоб он запустился в командной строке

Вот мой код от граф.интерфейса:
import PySimpleGUI as sg
import parser as ps


layout = [
    [
    	sg.Text(text='Login',background_color='#fff',text_color='#000'), sg.InputText(size=(20,10),key='login_input'), 
    	sg.Text(text='Password',background_color='#fff',text_color='#000'),sg.InputText(size=(20,10),key='password_input'),
    	sg.Button(button_text='Check Auth',key='check_auth',enable_events=True,button_color=('#000','#fff'),pad=((50,0),(0,0)),tooltip='Проверка логина и пароля')
    ],
    [sg.Text(text='File',background_color='#fff',text_color='#000'),sg.InputText(key='file_input'),sg.FileBrowse()],
    [sg.Text(text='Минимальное кол-во товаров на складе',background_color='#fff',text_color='#000'),sg.InputText(size=(10,2),key='min_count_input')],
    [sg.Text(text='Максимальное кол-во дней',background_color='#fff',text_color='#000'),sg.InputText(size=(10,2),key='max_delivery_input')],
    [sg.Checkbox(text='Использовать Tor?',key='check_parse',enable_events=True,default=True)],
    [sg.Output(size=(88, 20))],
    [sg.Submit(), sg.Cancel()]
]

window = sg.Window('File Compare', layout,background_color='#fff',button_color=('#000','#fff'))
parser = ps.Parser()

while True:                             # The Event Loop
    event, values = window.read()
    print(event, values)
    if event in (None, 'Exit', 'Cancel'):
        break
    if event == 'Submit':
    	try:
    		list_data = parser.get_list_data(values['file_input'])
    	except Exception as e:
    		print('Error with file: ',e.args)
    	try:
			     parser.run(values['min_count_input'],values['max_delivery_input'],list_data)
    	except Exception as e:
    		print('Не хватает данных для парсинга. Заполните поля. ',e.args)
    	print('Hello')

window.close()


Код парсера нет надобности сюда вставлять. Обычный парсер.
  • Вопрос задан
  • 269 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы