运行下载链接并解压缩到 python 中的文件夹,其中包含存储变量的 url

mrcsk8

如何在 python 中创建一个脚本,通过用户通过控制台在输入中输入的值,在存储库的特定 url 中替换,以便能够下载 .zip,并且当它自动下载时,一个文件夹在输入的地方创建并解包,例如:

给定两个随机的 github url:

https://github.com/exercism/python/archive/refs/heads/bobahop-patch-1.zip

https://github.com/exercism/python/archive/refs/heads/bobahop-patch-2.zip

用户可以通过控制台输入“patch-1”或“patch-2”,该值将在 url 中替换,然后链接将被执行,并且它包含的 .zip 将被下载到存储库。同时,将创建一个具有任何名称的文件夹(例如,用户在控制台中输入的值)并将下载的 .zip 移动到该文件夹​​,然后将其解压缩。

简单的

Python有

  • urllib从网页获取/下载数据的标准模块urllib.request.urlretrieve()
  • os创建文件夹os.makedirs()和移动/重命名文件的标准模块os.rename()
  • zipfile压缩/解压缩.zip文件的标准模块
import os
import urllib.request
import zipfile

#user_input = input("What to download: ")
user_input = 'patch-1'

pattern = 'https://github.com/exercism/python/archive/refs/heads/bobahop-{}.zip'
url = pattern.format(user_input)

filename = f"{user_input}.zip"

print('From:', url)
print('  To:', filename)

urllib.request.urlretrieve(url, filename)

# ---

destination_folder = user_input
print('Create folder:', destination_folder)

os.makedirs(destination_folder, exist_ok=True)

# ---

print('Uncompress')

zip_file = zipfile.ZipFile(filename)
zip_file.extractall(destination_folder)

# ---

print("Move .zip to folder")

old_name = filename
new_name = os.path.join(destination_folder, filename)
os.rename(old_name, new_name)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章