Приветствую всех, эта рубрика моих никому не нужных разработок. И сегодня мы с вами будем писать простой менеджер загрузок или сценарий для загрузки больше кол-ва файлов. Попробую объяснить для чего это. Представьте что у вас есть ссылки на загрузку музыки(их очень много), вы же не будете переходить по каждой ссылке и скачивать? Мы автоматизируем этот процесс. В файле будут ссылки на скачку, а сценарий скачает их за нас.
!Пишу на python3!
Идея статьи в том, чтобы улучшить знания python читателя(возможно он откроет для себя что-то новое).
Вот такие либы я буду юзать для реализации того, что я хочу.
Введем списки для работы:
Теперь реализуем чтение ссылок из файла:
Теперь напишем загрузку файлов:
Так как скачанные файлы имеют формат .unknown, возможно пользователь захочет изменить формат файлов, тк.к может он скачивал .mp3:
Теперь в текущей директории мы будем искать файлы формата .unknown:
Теперь будем менять .unknown на формат, который указал пользователь:
Удаляем .unkown файлы:
И будем печатать, что все успешно:
Весь код:
В sites.txt должны быть прямые ссылки, вот пример:
Спасибо за внимание!
!Пишу на python3!
Идея статьи в том, чтобы улучшить знания python читателя(возможно он откроет для себя что-то новое).
Вот такие либы я буду юзать для реализации того, что я хочу.
Код:
import requests
import random
import glob
import os
import shutil
Введем списки для работы:
Код:
site = []
files = []
Теперь реализуем чтение ссылок из файла:
Код:
handle = open('sites.txt') # Читаем файл
for x in handle: #Записуем содержимое файла в список
site.append(x)
site = map(lambda s: s.strip(), site) # Удаляем из списка \n
site = list(site) # Конвертим в тип list(список)
Теперь напишем загрузку файлов:
Код:
for x in site:
if x == '': # Если будет пустой элемент пропустить
continue
ran = random.randint(1,999999) # Рандомное число в переменную присваем
handle = open(str(ran) + '.unknow',"wb") # Открываем на запись файл с именем(рандомное число) и форматом .unknown
ufr = requests.get(x)
handle.write(ufr.content) # Скачиваем и записуем содержимое файла
handle.close()
Так как скачанные файлы имеют формат .unknown, возможно пользователь захочет изменить формат файлов, тк.к может он скачивал .mp3:
Код:
formats = input("На какой формат изменить скачанные файлы? => ")
Теперь в текущей директории мы будем искать файлы формата .unknown:
Код:
for file in glob.glob("*.unknow"):
files.append(file)
Теперь будем менять .unknown на формат, который указал пользователь:
Код:
for x in files:
ran = random.randint(1,999999)
shutil.copy(x, str(ran) + '.' + formats)
Удаляем .unkown файлы:
Код:
for x in files:
os.remove(x)
И будем печатать, что все успешно:
Код:
print ('done')
Весь код:
Код:
import requests
import random
import glob
import os
import shutil
site = []
files = []
handle = open('sites.txt')
for x in handle:
site.append(x)
site = map(lambda s: s.strip(), site)
site = list(site)
for x in site:
if x == '':
continue
ran = random.randint(1,999999)
handle = open(str(ran) + '.unknow',"wb")
ufr = requests.get(x)
handle.write(ufr.content)
handle.close()
formats = input("На какой формат изменить скачанные файлы? => ")
for file in glob.glob("*.unknow"):
files.append(file)
for x in files:
ran = random.randint(1,999999)
shutil.copy(x, str(ran) + '.' + formats)
for x in files:
os.remove(x)
print ('done')
В sites.txt должны быть прямые ссылки, вот пример:
Код:
https://api.soundcloud.com/tracks/450378462/stream?client_id=7UodytM4nnvd8JmPdgaMgcu2DYGdiZrT
https://api.soundcloud.com/tracks/450379818/stream?client_id=7UodytM4nnvd8JmPdgaMgcu2DYGdiZrT
Спасибо за внимание!
Последнее редактирование: