Найти - Пользователи
Полная версия: Написать в командную строку директорию к файлу.
Начало » Python для новичков » Написать в командную строку директорию к файлу.
1 2
EgorSrche
Прошу Вас не кидайте в меня камнями, я новичок в языке 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')
JOHN_16
EgorSrche
его можно только запустить из консоли
нет, двойной клик мыши точно также его запускает.
EgorSrche
Вы правы уважаемый JOHN_16. Но Я ломаю голову над тем как написать через скрипт в командной строке двоеточие, чтобы Правильно указать директорию с Файлом.
JOHN_16
не понимаю зачем вы вообще это все делаете и кому это нужно.Ну да ладно.
Я не понимаю вашей проблемы с двоеточием. От слова совсем. Вы бы показали на маленьком примере что ли.
И да в вашем коды выше у вас ошибка, как раз с двоеточием рядом
EgorSrche
C:Users
EgorSrche
Спасибо огромное за ваше ответ уважаемый 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')
JOHN_16
EgorSrche
хотелось бы узнать как написать двоеточие через Python скрипт в командную строку?
мы наверное подождем оракула с хрустальным шаром, потому что видимо только двое могут понять о чем речь - он и вы.
Вы не в состоянии объяснить вашу проблему, вы не в состоянии ее продемонстрировать. Я не знаю как Вам помочь. Судя по активности ответов - остальные тоже (хотя вряд ли кто то уделил внимание такой странной теме)
doza_and
:):):)
JOHN_16
Судя по активности ответов - остальные тоже
Мне кажется как раз очень полезная тема. Я к ней народ буду отсылать. Иллюстрирует как не надо писать.
Для начала непонятно изложено и не указано в чем проблема.
Почитаешь и видно что вопрос возник на основе ложного утверждения что питоновские файлы не запускаются тычками мышки. Те решается проблема которой нет.
Дальше несуществующая проблема решается на основе пожалуй самого неудачного и проблемного подхода - изготовления исполняемого файла, что крайне не рекомендуется для любого проекта.
Дальше вместо того чтобы спокойно вызвать subprocess.call задав туда нужные аргументы человек пытается поштучно пихать символы в консоль и огребает кучу потенциальных проблем с синхронизацией с внешним процессом, переключением на русский текст и т.п. В конечном итоге запуск осуществляется так, что нигде кроме винды оно не будет работать (startfile). Более того автор, указав абсолютные пути в своем скрипте, позаботился чтобы это не работало не только на других ОС но и вообще на любых других компютерах.

Мне кажется что это профи. Он просто прикалыается над нами, проверяет насколько доброжелательные люди на этом форуме.
EgorSrche
Здравствуйте уважаемый 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')
EgorSrche
Уважаемый doza_and. Я еще зелёный новичок. Спасибо за участие в теме.
JOHN_16
Я наконец то понял о чем речь.
НУ что могу сказать, читать документацию к инструменту которыми пользуетесь бывает полезно.
EgorSrche
Вам на будущее - научитесь выражать свои мысли и описывать проблему. Иначе люди вас не понимают.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB