自己做的基于you-get的小脚本(新人,程序有点乱)
本帖最后由 HmyingJ 于 2020-4-29 15:21 编辑you-get是很好用的下载脚本,但是每次输入有点烦,就捣鼓着想要写个脚本,给you-get加一个窗口,在窗口里设置you-get各项参数并在cmd中打开
代码如下
import os
from tkinter import *
import tkinter.filedialog as filedialog
def load_txt(filename): #加载文件。将上一次的输入的内容打包进comment的列表
file = open(filename)
comment = file.readlines()
for i in range(len(comment)):
comment = comment[:-1]
file.close()
return comment
def cmd_download(filename,cookie,url,downlist): #网址 cookie 文件名
info = os.system(r'you-get -f -o{} -c {} {} {}'.format(filename, cookie,url,downlist)) #打开cmd并下载
print(info)
return 1
def load_in(): #设置窗口
root = Tk()
root.title('下载')
def download():
if v4.get() == 1:
v4.set('-l')
line = []
line.append(v1.get())
line.append(v2.get())
line.append(v3.get())
line.append(v4.get())
with open('setting.txt','w') as f:
for i in range(len(line)):
f.writelines(line)
f.write('\n')
if v4.get() == '是':
v4.set('-l')
else:
v4.set('')
root.destroy() #在这里我一直想知道退出主事件循环并继续执行下一行代码:cmd_download().但不知道怎么做,自己试着这样写结果可以,有大佬解惑么?
cmd_download(v3.get(),v2.get(),v1.get(),v4.get())
def open_dir():
dir_open = filedialog.askdirectory(title='选择输出文件夹',initialdir='I:\\')
v3.set(dir_open)
def open_file():
fileName = filedialog.askopenfilename(title= "open the cookie's file",filetypes=[('TEXT','.txt')],\
initialdir = 'H:\\cookie')
v2.set(fileName)
frame = LabelFrame(root,text='请填写以下信息',labelanchor=N)
frame.pack(padx=10,pady=10)
#msg = "默认下载路径为D:\\download\\you-get下载\\"
#title = "下载"
# ['网址','cookie路径(0/1)','是否修改输出路径(0/1)','是否全部下载(0/1)']
try:
line_ = load_txt('setting.txt')
except FileNotFoundError:
f = open("setting.txt",'w')
f.close()
line_ = load_txt('setting.txt')
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
v4 = StringVar()
if len(line_) != 0:
v1.set(line_)
v2.set(line_)
v3.set(line_)
v4.set(line_)
Label(frame,text='网址:').grid(row=0,column=0,sticky = E) #设置标签
Label(frame,text='cookie地址:').grid(row=1,column=0,sticky = E)
Label(frame,text='输出地址:').grid(row=2,column=0,sticky = E)
Label(frame,text='是否下载全部内容:').grid(row=3,column=0,sticky = E)
Label(frame,text='(例如:在"是"的选项下载动漫***,将下载该季全集)').grid(row=3,column=1,sticky=E,padx=10) #给Label ‘是否下载全部’ 添加注释
load_1 = Entry(frame,textvariable=v1,width=50)
load_1.grid(row=0,column=1,padx=10,pady=10)
load_2 = Entry(frame,textvariable=v2,width=50)
load_2.grid(row=1,column=1,padx=10,pady=10)
load_3 = Entry(frame,textvariable=v3,width=50)
load_3.grid(row=2,column=1,padx=10,pady=10)
load_4 = OptionMenu(frame,v4,'是','否')
load_4.grid(row=3,column=1,sticky=W,padx=5)
Button(frame,text='Browse',width=10,command=open_file).grid(row=1,column=2,sticky = W)
Button(frame,text='Browse',width=10,command=open_dir).grid(row=2,column=2,sticky = W)
Button(frame,text='开始下载',width=25,command=download)\
.grid(row=4,column=1,sticky = W,pady = 15)
Button(frame,text='退出',width=25,command=root.quit)\
.grid(row=4,column=1,sticky = E)
#filename,cookie,url,downlist
mainloop()
load_in()
桌面 NICE
页:
[1]