Форум сайта python.su
Прошу Вас не кидайте в меня камнями, я новичок в языке Python. Попробую Вам объяснить, что я хочу сделать. Когда мы пишем любой скрипт на языке Python. Назовем его мейн, он сохраняется с расширением py, его можно только запустить из консоли, что не очень удобно. Поэтому мы его можем конвертировать в exe файл, чтобы его мог запустить любой человек без консоли. Для этого, в моём случае, пишу в консоль пишу следующие:
Cd C:Users\egor\appdata\Local\Programs\Python\Python36-32\Scripts\
Pyinstaller main.py
Хочу написать программу, которая делает это автоматически. Каким образом? Команда input принимает названия py файла, ищет его, перемещает его в специальную папку, потом пишет в консоли, команду для конвертирование в exe файл, открывая папку с уже готовым exe файлом. Конечно, всё это по ходу еще поменяется и дополнится. Но основная проблема заключается в том, что в консоль не получается написать двоеточие, которое необходимо чтобы задать правильно путь. Помогите, пожалуйста, мне очень надеюсь на вашу помощь. Конечно написать код он выглядит ужасно я его буду потом редактировать.
import win32api import win32con import time import os from pynput.keyboard import Key, Controller os.startfile(r'C:/Windows/system32/cmd.exe') time.sleep(1) keyboard = Controller() keyboard.press(Key.shift) keyboard.press(Key.alt) keyboard.release(Key.alt) keyboard.release(Key.shift)# смена языка import keyboard win32api.keybd_event(0x0D, 0, win32con.KEYEVENTF_EXTENDEDKEY, 0) c = r"cd C:Users\egor\AppData\Local\Programs\Python\Python36-32\Scripts\ " keyboard.write(c) win32api.keybd_event(0x0D, 0, win32con.KEYEVENTF_EXTENDEDKEY, 0) keyboard.write('pyinstaller main.py') win32api.keybd_event(0x0D, 0, win32con.KEYEVENTF_EXTENDEDKEY, 0) time.sleep(1 * 5) os.startfile(r'C:\Users\егор\AppData\Local\Programs\Python\Python36-32\Scripts\dist')
Отредактировано EgorSrche (Март 15, 2018 11:48:06)
Офлайн
EgorSrcheнет, двойной клик мыши точно также его запускает.
его можно только запустить из консоли
Офлайн
Вы правы уважаемый JOHN_16. Но Я ломаю голову над тем как написать через скрипт в командной строке двоеточие, чтобы Правильно указать директорию с Файлом.
Офлайн
не понимаю зачем вы вообще это все делаете и кому это нужно.Ну да ладно.
Я не понимаю вашей проблемы с двоеточием. От слова совсем. Вы бы показали на маленьком примере что ли.
И да в вашем коды выше у вас ошибка, как раз с двоеточием рядом
EgorSrche
C:Users
Офлайн
Спасибо огромное за ваше ответ уважаемый JOHN_16
У меня получились вот так. Работает, конечно, но всё-таки хотелось бы узнать как написать двоеточие через Python скрипт в командную строку?
Мы пишем имя файл и получаем exe файл.
import time import os import keyboard a = input(str("имя файл ")) os.startfile(r'C:/Windows/system32/cmd.exe') time.sleep(1) keyboard.press_and_release('Shift+Alt')# смена языка keyboard.write('"pyinstaller " + a + ".py"') keyboard.press_and_release('Enter') time.sleep(1) keyboard.write('exit') keyboard.press_and_release('Enter') os.startfile(r'D:\python\dist')
Отредактировано EgorSrche (Март 15, 2018 21:01:49)
Офлайн
EgorSrcheмы наверное подождем оракула с хрустальным шаром, потому что видимо только двое могут понять о чем речь - он и вы.
хотелось бы узнать как написать двоеточие через Python скрипт в командную строку?
Офлайн
:):):)
JOHN_16Мне кажется как раз очень полезная тема. Я к ней народ буду отсылать. Иллюстрирует как не надо писать.
Судя по активности ответов - остальные тоже
Офлайн
Здравствуйте уважаемый JOHN_16.
Спасибо большое за ваши сообщения.
Нашел способ написать в консоль двоеточие. Может кому-то это пригодится.
import os import time import keyboard os.startfile(r'cmd.exe') time.sleep(1) keyboard.write('cd D:/games', exact=True, delay=0.01) keyboard.send('enter') # aliases: press_and_release time.sleep(6) keyboard.write('exit', exact=True, delay=0.01) keyboard.send('enter')
Офлайн
Уважаемый doza_and. Я еще зелёный новичок. Спасибо за участие в теме.
Офлайн
Я наконец то понял о чем речь.
НУ что могу сказать, читать документацию к инструменту которыми пользуетесь бывает полезно.
EgorSrche
Вам на будущее - научитесь выражать свои мысли и описывать проблему. Иначе люди вас не понимают.
Офлайн