|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 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[i] = comment[i][:-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[i])
- 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_[0])
- v2.set(line_[1])
- v3.set(line_[2])
- v4.set(line_[3])
- 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()
复制代码
|
|