我正在用Python做一个简单的压缩程序来完成一个学校作业,我的问题是当你输入文件名时,会出现一个小窗口,上面有一个执行tar命令的按钮,我希望这个窗口在执行命令后关闭,但我不知道为什么,这是我的代码
def crea_arxiu():
global aux
if v.get() is 1 or v.get() is 2 or v.get() is 3 or v.get() is 4:
f = open('fitxers.txt','w')
for i in range(llista2.size()):
f.write(llista2.get(i)+'\n')
f.close()
print 'Arxius a comprimir:',llista2.size()
obre_finestra()
if aux is 1:
print 'AUX IS TRUE'
subprocess.call(['rm','fitxers.txt'])
else:
print 'Escolleix una opcio'
#Aquest mètode crea i mostra la pantalla per guardar el nom
#i i la finestra amb la comanda que executara
def obre_finestra():
global aux
ruta_text = StringVar()
finestra2=Toplevel(finestra)
finestra2.minsize(0,0)
finestra2.title('Comanda a executar:')
ruta = Label(finestra2, width=60, relief=SUNKEN, textvariable=ruta_text)
ruta.pack(side=LEFT)
boto = Button(finestra2, text = 'Executar', command = lambda: executar_commanda(nom_arxiu, tipus_comp))
boto.pack(side = RIGHT)
nom_arxiu = tkFileDialog.asksaveasfilename(title='Guardar com')
if v.get() is 1:
tipus_comp = 'cf'
nom_arxiu = nom_arxiu+'.tar'
elif v.get() is 2:
tipus_comp = 'czf'
nom_arxiu = nom_arxiu+'.tgz'
elif v.get() is 3:
tipus_comp = 'cjf'
nom_arxiu = nom_arxiu+'.tbz'
elif v.get() is 4:
tipus_comp = 'cJf'
nom_arxiu = nom_arxiu+'.txz'
ruta_text.set('tar '+tipus_comp+' '+nom_arxiu+' '+'fitxers de la llista')
if aux is 1:
finestra2.destroy()
def executar_commanda(nom,tipus_comp):
global aux
aux = 1
subprocess.call(['tar',tipus_comp,nom,'-T','fitxers.txt'])
函数的顺序是:crea\u arxiu->;obre\u finestra(调用asksaveasfilename和小窗口),当我按“Execute”时,executar\u commanda执行,然后我希望窗口被杀死
在输入文件名之前: http://imgur.com/KOgxIe3
给出名称后: http://imgur.com/zDB5Bbs
所以最后我只希望路径窗口关闭后,它去'Executar'按钮,所以非常感谢你们和sry为我的英语不是那么好^ ^'
目前没有回答
相关问题 更多 >
编程相关推荐