(如果对任何人都重要的话,我使用的是python3.6.6)
我正在为一个游戏做一个GUI安装程序,目前在私有alpha中,并且不断更新。在
我已经制作了一个控制台版本:from tqdm import tqdm
import requests, os, sys, zipfile, shutil, subprocess
chunk_size = 1024
url = "{LINK TO FILE YOU WANT TO DOWNLOAD}"
r = requests.get(url, stream = True)
total_size = int(r.headers['content-length'])
print("Are you sure you want to download the newest version of RFMP?")
print("y/n", end=': ')
answer = input()
while True:
if answer == 'y':
if os.path.exists("RFMB6_WINDOWS"):
print('')
print('')
print('Removing old RFMP files...')
subprocess.check_call(('attrib -R ' + 'RFMB6_WINDOWS' + '\\* /S').split())
shutil.rmtree('RFMB6_WINDOWS')
print('')
print('Removed old files.')
break
else:
break
elif answer == 'n':
sys.exit()
else:
print("That is not a valid answer, please answer with y/n.")
answer = input()
print('')
print('')
print('Downloading:')
with open('RFMB6_WINDOWS.zip', 'wb') as f:
for data in tqdm(iterable = r.iter_content(chunk_size = chunk_size), total = total_size/chunk_size, unit = 'KB'):
f.write(data)
print('')
print("Download Complete.")
print('')
print('')
print("Would you like to extract it?")
print("y/n", end=': ')
answer2 = input()
while True:
if answer2 == 'y':
print('')
print('')
print('Extracting...')
zip_ref = zipfile.ZipFile("RFMB6_WINDOWS.zip", 'r')
zip_ref.extractall("RFMB6_WINDOWS")
zip_ref.close()
print('')
print('Extraction Complete')
print('')
print('')
print('Cleaning up...')
os.remove("RFMB6_WINDOWS.zip")
print('')
print('Done! You have succesfully installed the newest version of the Ravenfield Multiplayer Private Alpha.')
break
elif answer2 == 'n':
print('')
print('Done! You have succesfully downloaded the newest Zip of the Ravenfield Multiplayer Private Alpha.')
break
else:
print("That is not a valid answer, please answer with y/n.")
answer = input()
os.system('pause')
我将只使用这个下载1个特定的链接,所以忽略url变量。在
我正在尝试制作一个GUI,当我单击一个显示“下载”的按钮时,它会执行相同的操作。我想做一个进度条,和一个文本框,告诉你正在进行什么,例如下载,提取等。我不需要一个目录选项。我只需要它下载任何地方的文件,并删除旧文件,如果它仍然存在。在
所以我的问题是:我如何学习如何做到这一点?我看过tkinter教程和其他问题,但我只找到了Python2的东西,或者是开发用来修改和调用我自己的工作的东西。我正在寻找的是链接和/或例子,可以告诉我如何着手创建这样的东西。提前感谢任何帮助我的人。在
另外,在编码方面,我是个笨蛋,所以无论你解释什么,请彻底地做。在
为了运行控制台应用程序,您需要通过终端运行它,并在“url”变量中添加自己的链接。在