如何在 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] 删除。
我来说两句