Уведомления

Группа в Telegram: @pythonsu

#1 Март 15, 2018 11:47:26

EgorSrche
Зарегистрирован: 2018-03-10
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

Прошу Вас не кидайте в меня камнями, я новичок в языке 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)

Офлайн

#2 Март 15, 2018 12:45:05

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

EgorSrche
его можно только запустить из консоли
нет, двойной клик мыши точно также его запускает.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Март 15, 2018 12:53:29

EgorSrche
Зарегистрирован: 2018-03-10
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

Вы правы уважаемый JOHN_16. Но Я ломаю голову над тем как написать через скрипт в командной строке двоеточие, чтобы Правильно указать директорию с Файлом.

Офлайн

#4 Март 15, 2018 14:12:02

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

не понимаю зачем вы вообще это все делаете и кому это нужно.Ну да ладно.
Я не понимаю вашей проблемы с двоеточием. От слова совсем. Вы бы показали на маленьком примере что ли.
И да в вашем коды выше у вас ошибка, как раз с двоеточием рядом

EgorSrche
C:Users



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Март 15, 2018 21:01:23

EgorSrche
Зарегистрирован: 2018-03-10
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

Спасибо огромное за ваше ответ уважаемый 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)

Офлайн

#6 Март 15, 2018 22:37:28

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

EgorSrche
хотелось бы узнать как написать двоеточие через Python скрипт в командную строку?
мы наверное подождем оракула с хрустальным шаром, потому что видимо только двое могут понять о чем речь - он и вы.
Вы не в состоянии объяснить вашу проблему, вы не в состоянии ее продемонстрировать. Я не знаю как Вам помочь. Судя по активности ответов - остальные тоже (хотя вряд ли кто то уделил внимание такой странной теме)



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Март 16, 2018 07:18:50

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

:):):)

JOHN_16
Судя по активности ответов - остальные тоже
Мне кажется как раз очень полезная тема. Я к ней народ буду отсылать. Иллюстрирует как не надо писать.
Для начала непонятно изложено и не указано в чем проблема.
Почитаешь и видно что вопрос возник на основе ложного утверждения что питоновские файлы не запускаются тычками мышки. Те решается проблема которой нет.
Дальше несуществующая проблема решается на основе пожалуй самого неудачного и проблемного подхода - изготовления исполняемого файла, что крайне не рекомендуется для любого проекта.
Дальше вместо того чтобы спокойно вызвать subprocess.call задав туда нужные аргументы человек пытается поштучно пихать символы в консоль и огребает кучу потенциальных проблем с синхронизацией с внешним процессом, переключением на русский текст и т.п. В конечном итоге запуск осуществляется так, что нигде кроме винды оно не будет работать (startfile). Более того автор, указав абсолютные пути в своем скрипте, позаботился чтобы это не работало не только на других ОС но и вообще на любых других компютерах.

Мне кажется что это профи. Он просто прикалыается над нами, проверяет насколько доброжелательные люди на этом форуме.



Офлайн

#8 Март 16, 2018 09:45:35

EgorSrche
Зарегистрирован: 2018-03-10
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

Здравствуйте уважаемый 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')

Офлайн

#9 Март 16, 2018 09:55:25

EgorSrche
Зарегистрирован: 2018-03-10
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

Уважаемый doza_and. Я еще зелёный новичок. Спасибо за участие в теме.

Офлайн

#10 Март 16, 2018 10:09:38

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Написать в командную строку директорию к файлу.

Я наконец то понял о чем речь.
НУ что могу сказать, читать документацию к инструменту которыми пользуетесь бывает полезно.
EgorSrche
Вам на будущее - научитесь выражать свои мысли и описывать проблему. Иначе люди вас не понимают.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version