Создайте свои собственные исполняемые команды с помощью python в 10 строках кода. Это хороший способ автоматизировать некоторые задачи с помощью возможностей Python.

Итак, мы создадим программу, которая будет принимать два аргумента командной строки; первое будет именем файла, а второе будет расширением этого файла. Когда мы попытаемся запустить эту программу, она будет выглядеть примерно так

python <file_name> bar txt

file_name›, bar и txt являются аргументами командной строки.

«bar» — это имя файла, а «txt» — это тип файла, который мы хотим создать. Итак, мы пытаемся создать текстовый файл с именем bar.

Давайте приступим к написанию кода для этой программы.

Создайте каталог в любом месте на вашем ПК и создайте файл с именем file_maker.py внутри каталога. Вы можете назвать файл как хотите. Мой путь после создания file_maker.py будет выглядеть следующим образом:
C:\Users\Lenovo\Desktop\CommandLineFileMaker\file_maker.py

Для работы с аргументами командной строки нам придется импортировать модуль sys из python.

import sys

Затем мы будем использовать этот модуль для доступа к аргументам командной строки, которые пользователь передает терминалу.

import sys

#Check if the user passed the filename and extension in command line
if len(sys.argv) < 3:
    print("Sorry! Enter the following format: py <filename> <extension>")
    sys.exit()

sys.argv хранит все аргументы командной строки, которые пользователь передает в командную строку. Первым сохраняемым элементом всегда является имя файла.

python file_maker.py bar txt

Здесь sys.argv[0] будет file_maker.py, sys.argv[1] будет 'bar', а sys.argv[2] будет 'txt'. Теперь, когда вы знаете, что хранит sys.argv, давайте продолжим писать код.

import sys

if len(sys.argv) < 3:
    print("Sorry! Enter the following format: py <filename> <extension>")
    sys.exit()

#Take the filename and extension from the command line
file_name = sys.argv[1]
extension = sys.argv[2]

Здесь мы добавили две новые строки. Во-первых, мы сохранили sys.argv[1] в переменной file_name и sys.argv[2] в переменной extension.

Затем мы будем использовать это имя файла и расширение для создания нового файла. В Python вы можете создать любой новый файл, открыв файл в режиме записи. Давайте посмотрим, как мы будем писать код.

import sys

if len(sys.argv) < 3:
    print("Sorry! Enter the following format: py <filename> <extension>")
    sys.exit()

file_name = sys.argv[1]
extension = sys.argv[2]

#Create new file in the 'Desktop'
#We need to pass the 'w' as an addtional argument to create the file
with open(f'C:\\Users\\Lenovo\\Desktop\\{file_name}.{extension}', 'w'):
    pass

Мы закончили писать код для нашей программы. Давайте запустим его с помощью команды Windows + R. Нам нужно будет создать пакетный файл для запуска этой программы, не открывая сам файл python.

Откройте блокнот в режиме администратора и поместите в файл следующий текст:

@py.exe {Your python scripts location} %*
@pause

Вы должны заменить {Расположение вашего скрипта Python} на путь, по которому находится ваш скрипт Python. Для меня это будет выглядеть так C:\Users\Lenovo\Desktop\CommandLineFileMaker

Затем сохраните файл в папке Windows вашего корневого каталога с расширением «.bat». (С:\ для меня). Назовите файл как хотите, я назвал его «mf.bat».

Теперь вы готовы запустить скрипт, нажав Windows+R. Давай попробуем!

mf — имя пакетного файла, roshan — имя файла, а py — имя расширения. Итак, я хочу создать файл Python в папке на рабочем столе с именем roshan.py. Нажмите OK, и ваш новый файл Python готов.