Пишем 3 программы на Python за пару минут
Питон замечательный язык и сегодня мы с вами разработаем сразу три программы на его основе. Каждая программа будет полезной, так что сможете их использовать в дальнейшем.
#1 — Перемещение файлов
Первая программа будет трансфером для файлов. Её можно применять для автоматической сортировки файлов по папкам. К примеру, через Питон программу вы отслеживаете тип файла что попал в папку «Загрузки» и далее программа автоматически перемещает файл в папку музыка, фото, программы и так далее в зависимости от типа самого файла.
Для выполнения такой программы сперва подключите библиотеку «watchdog»:
pip install watchdog
Теперь можно прописать весь код, он показан ниже вместе с комментариями:
# Подключение всех модулей from watchdog.observers import Observer import os import time # FileSystemEventHandler - класс по отслеживанию изменений from watchdog.events import FileSystemEventHandler # Создаем класс наследник, через него может отслеживать изменения в папках class Handler(FileSystemEventHandler): # При любых изменениях в папке, мы перемещаем файлы в ней def on_modified(self, event): # Перебираем все файлы в папке folder_track for filename in os.listdir(folder_track): # Проверяем расширенеи файла extension = filename.split(".") # Если это фото, if len(extension) > 1 and (extension[1].lower() == "jpg" or extension[1].lower() == "png" or extension[1].lower() == "svg"): # то перемещаем файл в папку с фото file = folder_track + "/" + filename new_path = folder_dest + "/Photos/" + filename os.rename(file, new_path) # Если файл видео, то в папку с видео # Такое же можно прописать и для других расширений файлов elif len(extension) > 1 and extension[1].lower() == "mp4": file = folder_track + "/" + filename new_path = folder_dest + "/Videos/" + filename os.rename(file, new_path) # Папка что отслеживается folder_track = '/ПОЛНЫЙ_ПУТЬ_К_ВАШЕЙ_ПАПКЕ' # Папка куда перемещать будем folder_dest = '/ПОЛНЫЙ_ПУТЬ_К_ВАШЕЙ_ПАПКЕ' # Запуск всего на отслеживание handle = Handler() observer = Observer() observer.schedule(handle, folder_track, recursive=True) observer.start() # Программа будет срабатывать каждые 10 милисекунд try: while(True): time.sleep(10) except KeyboardInterrupt: observer.stop() observer.join()
#2 — Создание сервера
Наша вторая программа будет представлять из себя полноценный сервер, созданный с использованием лишь Python, без дополнительных фреймворков, по типу Django или Flask .
Что очень круто, так это то, что такой сервер можно создать используя лишь встроенные модули Python. Для этого импортируем из http.server два необходимых классах. Далее указываем «localhost» и порт по которому будем подключаться и создаем объект на основе HTTPServer. После этого запускаем сервер на постоянное выполнение.
from http.server import HTTPServer, CGIHTTPRequestHandler server_data = ("localhost", 8080) server = HTTPServer(server_data, CGIHTTPRequestHandler) server.serve_forever()
Также можно добавить файл «index.html» и прописать в нем всю разметку. На странице сервера будет отображаться содержимое из этого файла.
#3 — Управление браузером
Первое что необходимо сделать, так это установить « Selenium » через терминал:
pip install selenium
Далее нужно скачать специальный веб драйвер, который обеспечит работу с вашим браузером. Его можно скачать на официальной странице Selenium . Выбираете браузер через который хотите все запускать, далее выберите последнюю стабильную версию и скачиваете драйвер под вашу операционную систему.
В программе нужно прописать полный путь к драйверу и выполнить открытие страницы:
from selenium import webdriver browser = webdriver.Chrome('/ПУТЬ_К_ПАПКЕ_С_ДРАЙВЕРОМ/chromedriver') browser.get("https://itproger.com")
Видео на эту тему
Также вы можете просмотреть детальное видео по разработке всех этих трёх программ:
Дополнительный курс
На нашем сайте также есть углубленный курс по изучению языка Питон . В ходе огромной программы вы изучите не только язык Питон, но также научитесь создавать веб сайты за счёт веб технологий и фреймворка Джанго. За курс вы изучите массу нового и к концу программы будете уметь работать с языком Питон, создавать на нём полноценные ПК приложения на основе библиотеки Kivy, а также создавать веб сайты на основе библиотеки Джанго.
Больше интересных новостей

Игровой движок Cocos Creator / Создание 2Д игры

10 крутых игр для программистов – многие о них даже не слышали!

7 перспективных языков программирования

Какой язык программирования выбрать в 2018 году
Работа с путями к файлам и папкам
Модуль os содержит подмодуль os.path , который позволяет работать с путями файлов и папок. Импортировать этот модуль отдельно не нужно, достаточно выполнить import os .
Присоединение одной части пути к другой
Работа с путями к файлам и папкам как с простыми строками чревата множеством ошибок и может создать проблемы при переносе программы между различными операционными системами. Правильный путь объединить две части пути — это использование os.path.join :
>>> import os >>> dirpath = '../books' >>> # Здесь filename - имя файла, а не путь от места запуска программы до него: >>> for filename in os.listdir(dirpath): . # filepath = dirname + filename - сработает неправильно, так как будет не хватать "/" . filepath = os.path.join(dirname, filename) # поставит "/" или "\" за нас . with open(filepath, encoding='utf-8') as fd: . if 'нагваль' in fd.read(): . print('Книга ' + filename + ' об индейцах')
Извлечение имени файла из пути
Функция os.path.split совершает обратное действие — отрезает имя файла или ниже лежащей папки от пути:
>>> import os >>> path = './work/project/version8/final.txt' >>> dirpath, filename = os.path.split(path) >>> print(dirpath) ./work/project/version8 >>> print(filename) final.txt >>> project_dir, version_dir = os.path.split(dirpath) >>> print(project_dir) ./work/project >>> print(version_dir) version8
Извлечение расширения
Кроме того, может пригодиться функция os.path.splitext , котоая отрезает расширение файла:
>>> import os >>> path = './work/project/version12/final.txt' >>> base, ext = os.path.splitext(path) >>> print(base, ext, sep='\n') ./work/project/version12/final .txt
Проверка типа файла
Кроме прочего, модуль os.path содержит функции для проверки существования файла и для определения его типа:
>>> import os >>> path = './kursach/text' >>> if os.path.exists(path): . print(path, 'существует') . if os.path.isfile(path): . print(path, '— это файл') . elif os.path.isdir(path): . print(path, '— это папка') . else: . print(path, '— это ни файл и ни папка') . else: . print(path, 'не существует')
Манипуляции с файлами и папками
Производите все манипуляции с файлами с осторожностью, придерживайтесь правила «семь раз отмерь — один раз отрежь». Не забывайте программно производить все возможные проверки перед выполнением операций.
Создание файла
Нет ничего проще, чем создать пустой файл, достаточно открыть несуществующий файл с флагом ‘x’ :
>>> with open('empty.txt', 'x'): . pass
Конечно, можно было бы использовать флаг ‘w’ , но тогда уже существующий файл был бы стёрт. С флагом ‘x’ open либо создаст новый файл, либо выбросит ошибку.
Создание папки
Для создания новой папки используйте os.mkdir(name) . Эта функция выбросит ошибку, если по указанному пути уже существует файл или папка. Если вам нужно создать сразу несколько вложенных папок, то смотрите функцию os.makedirs(name, exist_ok=False) .
Перемещение и переименование
Для удобной манипуляции с файлами и папками в стандартной библиотеки Python существует специальный модуль shutil . Функция shutil.move(source, destination) позволяет вам переместить любой файл или папку (даже непустую). Обратите внимание, что если destination — это уже существующая папка, то файл/папка будет перемещена внутрь неё, в остальных случаях файл/папка будут скопированы точно по нужному адресу. В случае успеха, функция вернёт новое местоположение файла. Если destination существует и не является папкой, то будет выброшена ошибка.
>>> import shutil >>> source = 'my_poem.txt' >>> destination = 'trash' >>> # Создаем папку назначения >>> os.mkdir(destination) >>> # Перенесем файл внутрь папки >>> path = shutil.move(source, destination) >>> print(path) trash/my_poem.txt >>> # Перенесем файл обратно >>> new_name = 'poem.txt' >>> final_path = shutil.move(path, new_name) >>> print(final_path) poem.txt
Как же переименовать файл? Несмотря на то, что os содержит специальную функцию для переименования, нужно понимать, что в рамках одной файловой системы перемещение и переименование — это одно и то же. Когда вы переименовываете файл, его содержимое не переписывается на носителе в другое место, просто файловая система теперь обозначает его положение другим путём.
Копирование
Скопировать файл можно с помощью функции shutil.copy(source, destination) . Правила расположения копии будут те же, что и при использовании shutil.move , за тем исключением, что если destination существует и не является файлом, то он будет заменён и ошибки это не вызовет.
Скопировать папку для операционной системы сложнее, ведь мы всегда хотим скопировать не только папку, но и её содержимое. Для копирования папок используйте shutil.copytree(source, destination) . Обратите внимание, что для этой функции destination всегда должно быть путём конечного расположения файлов и не может быть уже существующей папкой.
Удаление
Удалить файл можно с помощью функции os.remove , а пустую папку с помощью функции os.rmdir .
А вот для удаления папки с содержимым вновь понадобится shutil . Для удаления такой папки используйте shutil.rmtree .
Будьте осторожны, команды удаления стирают файл, а не перемещают его в корзину, вне зависимости от операционной системы! После такого удаления восстановить файл может быть сложно или вовсе невозможно.
Домашняя работа
- В текущей папке лежат файлы с расширениями .mp3 , .flac и .oga . Создайте папки mp3 , flac , oga и положите туда все файлы с соответствующими расширениями.
- В текущей папке лежит две других папки: vasya и mila , причём в этих папках могут лежать файлы с одинаковыми именами, например vasya/kursovaya.doc и mila/kursovaya.doc . Скопируйте все файлы из этих папок в текущую папку назвав их следующим образом: vasya_kursovaya.doc , mila_test.pdf и т.п.
- В текущей папке лежат файлы следующего вида: S01E01.mkv , S01E02.mkv , S02E01.mkv и т.п., то есть все файлы начинаются с S01 или S02 . Создайте папки S01 и S02 и переложите туда соответствующие файлы.
- В текущей папке лежат файлы вида 2019-03-08.jpg , 2019-04-01.jpg и т.п. Отсортируйте файлы по имени и переименуйте их в 1.jpg , 2.jpg , …, 10.jpg , и т.д.
- В текущей папке лежат две другие папки: video и sub . Создайте новую папку watch_me и переложите туда содержимое указанных папок (сами папки класть не надо).
- В текущей папке лежат файлы типа Nina_Stoletova.jpg , Misha_Perelman.jpg и т.п. Переименуйте их переставив имя и фамилию местами.
- В текущей папке лежит файл list.tsv , в котором с новой строки написаны имена некоторых других файлов этой папки. Создайте папку list и переложите в неё данные файлы.
Для тестирования вашей программы положите в репозиторий файлы и папки с соответствующими именами. Файлы должны быть пустыми, если не указано обратного.
Куда деть файлы при переводе приложения kivy в apk python?
В общем. Я делал приложение которое может говорить цифры, для этого я использую файлы с произношением. Но при переводе приложения в apk куда мне деть эти файлы, что бы можно было использовать на телефоне?
Отслеживать
python_dev
задан 3 июл 2022 в 14:05
python_dev python_dev
1 1 1 бронзовый знак
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вам необходимо в buildozer.spec прописать расширения файлов включаемые в APK и папки, пример:
#(list) Source files to include (let empty to include all the files) source.include_exts. = py,png,jpg,kv,atlas,wav #(list) List of inclusions using pattern matching source.include_patterns = audio/guard/*.wav,audio/chisau/*.wav
Отслеживать
ответ дан 3 июл 2022 в 18:29
videxerion videxerion
1,255 1 1 золотой знак 7 7 серебряных знаков 25 25 бронзовых знаков
можно про папки подробнее?
4 июл 2022 в 6:48
Ну директории которые ты встраиваешь внутрь apk
4 июл 2022 в 9:51
- python
- файлы
- kivy
- app
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Kivy что за папка
Kivy –Библиотека Python в свободном доступе для быстрой разработки приложений, где используются инновационный пользовательский интерфейс, такие как мульти-тач приложения. И да, Kivy Python на русском доступна уже сегодня.
Кроссплатформенность
Kivy работает на Linux, Windows, OS X, Android, iOS, и Raspberry Pi. С Kivy Python вы можете запустить тот же код на всех поддерживаемых платформах.
Она изначально может использовать большинство входов, протоколов и устройств, включая WM_Touch, WM_Pen, Mac OS X Trackpad, а также Magic Mouse, Mtdev, Linux Kernel HID, TUIO. Также доступна Python Kivy Android. Симулятор мульти-тач мыши также включен.
Удобно для бизнеса
Kivy на 100% бесплатна для использования, предоставляется в соответствии с лицензией MIT (начиная с версии 1.7.2) и LGPL 3 для предыдущих версий. Если вас интересует связанный с Kivy Python учебник или руководство – их легко найти. Набор инструментов разработан профессионально, активно поддерживается и используется. Вы можете использовать Kivy для коммерческого продукта.
Ускоренный GPU
Графический движок построен на OpenGL ES 2 и использует современный и быстрый графический конвейер.
Набор инструментов содержит более 20 виджетов, каждый из которых отлично расширяется. Много частей написаны на С при помощи Cython и проверены регрессионными тестами.
