Автоматизируй это!

Сижу, изучаю PyQt. В процессе изучения, приходится каждый раз создавать маленький тестовый файл, прописывать у него внутри «заветное» начало:

#!/usr/bin/env python3
#coding: utf8

''' <имяфайла, назначение> '''

...

и затем наделять его статусом исполняемого.

И что-то так задрал меня этот процесс, что решил я написать утилиту, облегчающую мне жизнь.

Примерно год назад я уже публиковал статью на тему создания утилиты mkch («Python для си-шника» http://wp.me/p1H7g0-RZ)
, которая создает пару файлов (си-шник и хэдерный) и заполняет их шаблонным текстом. Утилита прижилась на компе, я ею время от времени пользуюсь.

— Ачёб не пользоваться, удобно же!

В общем, настала пора состряпать подобную утилиту для самого Питона.

Между этими утилитами есть небольшое различие.

Во первых, утилита для Питона создает один файл, а не два.

Во вторых, утилита проверяет окончание имени файла на предмет наличия суффикса ‘.py’. Если такой суффикс отсутствует, то утилита его добавит автоматически.

В третьих, утилита проверяет факт существования файла. Это сделано для предотвращения недоразумений, если такой файл еже есть.

В четвертых, после создания файла утилита делает его запускаемым.

Имеются также и другие отличия, но они не существенные.

Я понимаю, что мне уже давно пора предъявить общественности текст утилиты.

Ну, собственно, вот он:

#!/usr/bin/env python3
#coding: utf-8

''' Создает шаблон Питоновского файла в текущем директории '''

import sys, os

def make_py(filename):
  if filename[-3:].lower() != '.py':
    filename += '.py'
  #print('filename = &quot;{}&quot;'.format(filename))

  # Убедимся, что ничего не испортим
  if os.path.exists(filename):
    print('Файл (или директорий) с таким именем уже существует')
    return

  # Создадим файл и запишем в него шаблон
  with open(filename, 'w') as f:
    f.write('#!/usr/bin/env python3\n')
    f.write('#coding: utf-8\n')
    f.write('\n')
    f.write(&quot;''' {} '''\n&quot;.format(filename))
    f.write('\n')

  # Сделаем файл исполняемым
  os.chmod(filename, 0o755)

def show_help():
  print('Using: mkpy3 &lt;filename&gt;')

if __name__ == '__main__':
  if len(sys.argv) == 2:
    make_py(sys.argv[1])
  else:
    show_help()

Здесь всё настолько предельно просто и банально, что даже копирайт ставить стыдно.

Кроме того, утилиту еще долго можно совершенствовать и всячески улучшать. Я не претендую на самый канонический вариант исполнения. Добавляйте и улучшайте, если хотите и можете!

Я ж говорю — мне просто надоело каждый раз делать одни и те же действия, вот я и автоматизировал свою работу как смог. Утилита меня вполне устраивает, и это есть главное!

Реклама

2 responses to “Автоматизируй это!

  1. А мне 4ре штуки STM32F746G-Discovery приехали. Почему четыре — потому что купил аж в дижикее Пиндосии. Купившись на цену в 50 баксов и бесплатную доставку если сумма больше 200$. По итогу, пришлось заплатить ещё около 120$ за оплату из Болгарии в Пиндосию и за растаможку из Пиндосии в Болгарию. Сижу вот теперь в окружении четірёх сияющих экранов, и думаю пару из них продать. 🙂

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s